sys_context函式的用法
sys_context函式是Oracle提供的一個獲取環境上下文資訊的預定義函式。該函式用來返回一個指定namespace下的parameter值。該函式可以在sql和PL/SQL語言中使用。sys_context實際上就是一個Oracle儲存和傳遞引數的容器訪問函式。我們登入Oracle伺服器,是帶有會話資訊和其他一些屬性資訊的。其中,有一些是Oracle預定義的,登入系統的時候自動填入到指定的變數中。另一個函式userenv()保留與之相容。
以下是可以透過sys_context函式獲取到的一些資訊:
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', 'MODULE') module,
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,
sys_context('userenv', 'SID') from dual;
from dual;
我們還可以自己定義上下文引數來傳遞值,下面是sys_context函式的使用格式:
sys_context('namespace', 'parameter'{, length});
其中,namespace是儲存資訊的一個組單位,namespace是按照類別進行分類的。一個namespace下可以有多個引數值,透過不同的parameter進行區分。namespace是預先定義好的SQL識別符號,而parameter是可以任意大小寫非敏感的字串,不超過30位長度。函式返回值為varchar2型別,長度預設為256位。如果需要限制這個預設值,可以length引數作為新的返回長度值。
設定namespace指定parameter值,可以使用dbms_session.set_context方法進行:
-- 1、定義namespace
create context Test using set_test_context;
-- 2、定義方法
create or replace procedure set_test_context(vc_value in varchar2) is
begin
dbms_session.set_context('Test', 'a1', vc_value);
end;
-- 3、設定值
exec set_test_context('m');
-- 4、獲取值
select sys_context('Test', 'a1') from dual;
SYS_CONTEXT('TEST','A1')
------------------------------------
m
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28974745/viewspace-2219309/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20181116]SYS_CONTEXT函式的使用(12c).txtContext函式
- sys_context 獲取環境上下文的函式Context函式
- GetModuleFileName函式的用法函式
- Instr函式的用法函式
- 【Oracle的NVL函式用法】Oracle函式
- string 函式的基本用法函式
- abs函式用法函式
- StretchBlt函式和BitBlt函式的區別和用法函式
- C語言中函式printf()和函式scanf()的用法C語言函式
- python中zip()函式的用法Python函式
- PostgreSQL>視窗函式的用法SQL函式
- C++ 函式 realloc 的用法C++函式
- Excel函式的初級用法Excel函式
- Matlab中erf函式的用法Matlab函式
- Python range() 函式用法Python函式
- SSD-函式用法函式
- SQL LEN()函式用法SQL函式
- Python排序函式用法Python排序函式
- Python中的split()函式的用法Python函式
- C語言中qsort函式的用法C語言函式
- C語言函式sscanf()的用法C語言函式
- php array_filter() 函式的用法PHPFilter函式
- C — 快排函式 qsort 的用法函式
- 分割槽函式Partition By的基本用法函式
- python sorted()函式的引數用法Python函式
- python函式符號sympy的用法Python函式符號
- C++中函式呼叫的用法C++函式
- PHP 自定義函式用法及常用函式集合PHP函式
- oracle資料庫常用分析函式與聚合函式的用法Oracle資料庫函式
- C++ replace() 函式用法C++函式
- fcntl函式用法詳解函式
- 粒子群最佳化函式--particleswarm函式的用法與討論函式Swarm
- C# List常用函式用法C#函式
- Python3 range() 函式用法Python函式
- abs(int)、fabs(double)函式用法函式
- SQL函式Group_concat用法SQL函式
- Lua——load和loadstring函式用法函式
- C++回撥函式 用法C++函式