[转帖学习]Oracle的 SYS_CONTEXT 函数简介

Oracle的 SYS_CONTEXT 函数简介

https://blog.csdn.net/IndexMan/article/details/48606369

1、什么是SYS_CONTEXT? 
SYS_CONTEXT 函数是Oracle提供的一个获取环境上下文信息的预定义函数。 
该函数用来返回一个指定namespace下的parameter值。该函数可以在SQL和PL/SQL语言中使用。

上下文定义 
(a set of application-defined attributes that validates and secures an application 一组由应用程序定义的属性用于验证和保护应用。)

2、语法 
SYS_CONTEXT 语法格式:SYS_CONTEXT(‘namespace’,’parameter’{,LENGTH});

其中,namespace是存储信息的一个组group单位,namespace是按照类别进行分类的。 
一个namespace下可以有多个参数值,通过不同的parameter进行区分。namespace是预先定义好的SQL标识符,而parameter是可以任意大小写非敏感的字符串,不超过30位长度。 
函数返回值为varchar2类型,长度默认为256位。如果需要限制这个默认值,可以数据length参数作为新的返回长度值。

3、预定义的namespace – USERENV 

SELECT SYS_CONTEXT ('USERENV', 'TERMINAL') terminal, 
SYS_CONTEXT ('USERENV', 'LANGUAGE') language, 
SYS_CONTEXT ('USERENV', 'SESSIONID') sessionid, 
SYS_CONTEXT ('USERENV', 'INSTANCE') instance, 
SYS_CONTEXT ('USERENV', 'ENTRYID') entryid, 
SYS_CONTEXT ('USERENV', 'ISDBA') isdba, 
SYS_CONTEXT ('USERENV', 'NLS_TERRITORY') nls_territory, 
SYS_CONTEXT ('USERENV', 'NLS_CURRENCY') nls_currency, 
SYS_CONTEXT ('USERENV', 'NLS_CALENDAR') nls_calendar, 
SYS_CONTEXT ('USERENV', 'NLS_DATE_FORMAT') nls_date_format, 
SYS_CONTEXT ('USERENV', 'NLS_DATE_LANGUAGE') nls_date_language, 
SYS_CONTEXT ('USERENV', 'NLS_SORT') nls_sort, 
SYS_CONTEXT ('USERENV', 'CURRENT_USER') current_user, 
SYS_CONTEXT ('USERENV', 'CURRENT_USERID') current_userid, 
SYS_CONTEXT ('USERENV', 'SESSION_USER') session_user, 
SYS_CONTEXT ('USERENV', 'SESSION_USERID') session_userid, 
SYS_CONTEXT ('USERENV', 'PROXY_USER') proxy_user, 
SYS_CONTEXT ('USERENV', 'PROXY_USERID') proxy_userid, 
SYS_CONTEXT ('USERENV', 'DB_DOMAIN') db_domain, 
SYS_CONTEXT ('USERENV', 'DB_NAME') db_name, 
SYS_CONTEXT ('USERENV', 'HOST') HOST, 
SYS_CONTEXT ('USERENV', 'OS_USER') os_user, 
SYS_CONTEXT ('USERENV', 'EXTERNAL_NAME') external_name, 
SYS_CONTEXT ('USERENV', 'IP_ADDRESS') ip_address, 
SYS_CONTEXT ('USERENV', 'NETWORK_PROTOCOL') network_protocol, 
SYS_CONTEXT ('USERENV', 'BG_JOB_ID') bg_job_id, 
SYS_CONTEXT ('USERENV', 'FG_JOB_ID') fg_job_id, 
SYS_CONTEXT ('USERENV', 'AUTHENTICATION_TYPE') authentication_type, 
SYS_CONTEXT ('USERENV', 'AUTHENTICATION_DATA') authentication_data 
FROM DUAL;

猜你喜欢

转载自www.cnblogs.com/jinanxiaolaohu/p/9241863.html