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;sql
SYS_CONTEXT 函数是Oracle提供的一个获取环境上下文信息的预约义函数。服务器
该函数用来返回一个指定namespace下的parameter值。该函数能够在SQL和PL/SQL语言中使用。session
SYS_CONTEXT 实际上就是一个Oracle存储和传递参数的容器访问函数。oracle
咱们登入Oracle服务器,是带有会话信息session_info和其余一些属性信息。app
其中,有一些是Oracle预约义的,登陆系统的时候自动填入到指定的变量中。还有一些是咱们本身定义到其中,用于传递值使用的。dom
SYS_CONTEXT 语法格式:SYS_CONTEXT('namespace','parameter'{,LENGTH});函数
其中,namespace是存储信息的一个组group单位,namespace是按照类别进行分类的。spa
一个namespace下能够有多个参数值,经过不一样的parameter进行区分。namespace是预先定义好的SQL标识符,而parameter是能够任意大小写非敏感的字符串,不超过30位长度。orm
函数返回值为varchar2类型,长度默认为256位。若是须要限制这个默认值,能够数据length参数做为新的返回长度值。ip
设置namespace指定parameter值,能够使用dbms_session.set_context方法进行。
[oracle@ebs12vis ~]$ sqlplus apps/apps
SQL*Plus: Release 11.1.0.7.0 - Production on Thu Oct 30 20:23:36 2014
Copyright (c) 1982, 2008, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> create context test using set_test_context;
Context created.
SQL> create or replace procedure set_test_context(value in varchar2) is
2 begin
3 dbms_session.set_context('test','key',value);
4 end set_test_context;
5 /
Procedure created.
SQL> exec set_test_context('This is a context set value!');
PL/SQL procedure successfully completed.
SQL> select sys_context('test','key') show_value from dual;
SHOW_VALUE -------------------------------------------------------------------------------- This is a context set value!