sys_context函数是Oracle提供的一个获取环境上下文信息的预定义函数。
该函数用来返回一个指定namespace下的parameter值;可以在sql和PL/SQL语言中使用。
sys_context实际是一个Oracle存储和传递参数的容器访问函数。
Session会话在登入Oracle时,是带有会话信息和其他一些属性信息的。其中,有一些是Oracle预定义的,登录系统的时候自动填入到指定的变量中。另一个函数userenv()保留与之兼容。
SYS_CONTEXT函数的用法如下:SYS_CONTEXT(‘namespace’, ‘parameter’ [, length ])
Oracle已经有内置的命名空间namespace(USERENV)用来返回当前会话的信息,
USEREN命名空间有以下参数:
select
SYS_CONTEXT(‘USERENV’,‘ACTION’) ACTION,
SYS_CONTEXT(‘USERENV’,‘AUDITED_CURSORID’) AUDITED_CURSORID,
SYS_CONTEXT(‘USERENV’,‘AUTHENTICATED_IDENTITY’) AUTHENTICATED_IDENTITY,
SYS_CONTEXT(‘USERENV’,‘AUTHENTICATION_DATA’) AUTHENTICATION_DATA,
SYS_CONTEXT(‘USERENV’,‘AUTHENTICATION_METHOD’) AUTHENTICATION_METHOD,
SYS_CONTEXT(‘USERENV’,‘BG_JOB_ID’) BG_JOB_ID,
SYS_CONTEXT(‘USERENV’,‘CLIENT_IDENTIFIER’) CLIENT_IDENTIFIER,
SYS_CONTEXT(‘USERENV’,‘CLIENT_INFO’) CLIENT_INFO,
SYS_CONTEXT(‘USERENV’,‘CURRENT_BIND’) CURRENT_BIND,
SYS_CONTEXT(‘USERENV’,‘CURRENT_SCHEMA’) CURRENT_SCHEMA,
SYS_CONTEXT(‘USERENV’,‘CURRENT_SCHEMAID’) CURRENT_SCHEMAID,
SYS_CONTEXT(‘USERENV’,‘CURRENT_SQL’) CURRENT_SQL,
SYS_CONTEXT(‘USERENV’,‘CURRENT_SQL_LENGTH’) CURRENT_SQL_LENGTH,
SYS_CONTEXT(‘USERENV’,‘DB_DOMAIN’) DB_DOMAIN,
SYS_CONTEXT(‘USERENV’,‘DB_NAME’) DB_NAME,
SYS_CONTEXT(‘USERENV’,‘DB_UNIQUE_NAME’) DB_UNIQUE_NAME,
SYS_CONTEXT(‘USERENV’,‘ENTRYID’) ENTRYID,
SYS_CONTEXT(‘USERENV’,‘ENTERPRISE_I