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_CONTE

本文详细介绍了Oracle数据库中的SYS_CONTEXT函数,它用于获取环境上下文信息,如会话用户、认证类型、数据库信息等。同时,还展示了如何自定义namespace和parameter来传递值,通过DBMS_SESSION.set_context设置和获取自定义上下文参数。这些功能对于理解和诊断数据库会话状态非常有用。
最低0.47元/天 解锁文章
3925

被折叠的 条评论
为什么被折叠?



