oracle database 12cr2 的 sys_context 函数

sys_context虽然用的地方不多,但是十分强大,属于oracle的系统函数。归属于STANDARD 包

SQL> select * from v$version ;

BANNER                                           CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production          0
PL/SQL Release 12.2.0.1.0 - Production                            0
CORE    12.2.0.1.0  Production                                0
TNS for Linux: Version 12.2.0.1.0 - Production                        0
NLSRTL Version 12.2.0.1.0 - Production                            0

SQL> select * from v$database ;
SQL> select * from v$thread ;
SQL> select * from gv$instance ;

查找 sys_context 的出处

select *
from dba_source vs
where 1=1
and upper(vs.text) like '%SYS_CONTEXT%'
and vs.name = 'STANDARD'
order by vs.line
;



  -- New built-in function SYS_CONTEXT
  function SYS_CONTEXT (namespace varchar2, attribute varchar2)
    return varchar2;

 -- SYS_CONTEXT now has an additional optional parameter
  function SYS_CONTEXT(namespace varchar2, attribute varchar2,
                       newoptional varchar2)
    return varchar2;   

常用的几个

select SYS_CONTEXT('USERENV','CURRENT_SCHEMA')
from dual
;
select SYS_CONTEXT('USERENV','SESSION_USER')
from dual
;
select SYS_CONTEXT('USERENV','CURRENT_USER')
from dual
;
select SYS_CONTEXT('USERENV','SID')
from dual
;
select SYS_CONTEXT('USERENV','CDB_NAME')
from dual
;
select SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER')
from dual
;
select SYS_CONTEXT('USERENV','CLIENT_INFO')
from dual
;
select SYS_CONTEXT('USERENV','DATABASE_ROLE')
from dual
;
select SYS_CONTEXT('USERENV','DB_DOMAIN')
from dual
;
select SYS_CONTEXT('USERENV','DB_NAME')
from dual
;
select SYS_CONTEXT('USERENV','DB_UNIQUE_NAME')
from dual
;
select SYS_CONTEXT('USERENV','HOST')
from dual
;
select SYS_CONTEXT('USERENV','INSTANCE')
from dual
;
select SYS_CONTEXT('USERENV','INSTANCE_NAME')
from dual
;
select SYS_CONTEXT('USERENV','IP_ADDRESS')
from dual
;
select SYS_CONTEXT('USERENV','ISDBA')
from dual
;
select SYS_CONTEXT('USERENV','LANG')
from dual
;

参考:
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/SYS_CONTEXT.html#GUID-B9934A5D-D97B-4E51-B01B-80C76A5BD086

原文地址:https://www.cnblogs.com/ctypyb2002/p/9793017.html