使用SYS_CONTEXT
使用SYS_CONTEXT
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
常用parameters:
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;
4、建立自定義上下文–CREATE CONTEXT
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!
更多資訊請參考:
SYS_CONTEXT
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions165.htm
CREATE CONTEXT
http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5002.htm#i2060927
相關文章
- 使用sys_context找出會話資訊Context會話
- SYS_CONTEXTContext
- 【SYS_CONTEXT】使用SYS_CONTEXT獲取連線到資料庫伺服器的IP地址Context資料庫伺服器
- SYS_CONTEXT & USERENVContext
- userenv() 和sys_context()Context
- SYS_CONTEXT小記!Context
- sys_context函式用法Context函式
- Oracle USERENV和sys_contextOracleContext
- [20150924]SYS_CONTEXT函式的使用.txtContext函式
- sys_context函式的用法Context函式
- 說說sys_context函式Context函式
- Use SYS_CONTEXT to Obtain Session InformationContextAISessionORM
- userenv和sys_context函式Context函式
- oracle sys_context 使用小記_轉摘骨骨網友筆記OracleContext筆記
- SYS_CONTEXT函式的用法(ZT)Context函式
- 【原創】SYS_CONTEXT函式的用法Context函式
- Oracle中USERENV和SYS_CONTEXT總結OracleContext
- [20181116]SYS_CONTEXT函式的使用(12c).txtContext函式
- sys_context獲取當前會話的屬性Context會話
- oracle通過sys_context實現各使用者只能訪問屬於自己的資料OracleContext
- sys_context 獲取環境上下文的函式Context函式
- Oracle/PLSQL: Sys_Context Function(轉自http://www.techonthenet.com)OracleSQLContextFunctionHTTP
- [20211112]SYS_CONTEXT ('USERENV','DBID').txtContext
- 【Oracle-資料庫維護】-Oracle中USERENV和SYS_CONTEXT總結Oracle資料庫Context
- oracle sys_context與dbms_session.set_context實現view動態查詢OracleContextSessionView
- [20190423]簡單測試user和SYS_CONTEXT ('USERENV','CURRENT_USER').txtContext
- 慎用sys_context,可能導致無法正確的bind_peeking,而選擇錯誤的執行計劃Context
- laravel使用EasyWeChat 使用Laravel
- 使用FTP限制使用者FTP
- 配置vsftpd匿名使用服務,個人使用者使用以及虛擬使用者使用配置細節!FTP
- Laravel passport 多端使用者使用LaravelPassport
- 使用 CSS 追蹤使用者CSS
- mongodb使用者與角色使用MongoDB
- RecyclerView使用指南(四)—— 使用ItemDecorationView
- RecyclerView使用指南(一)—— 基本使用View
- 使用dwebsocket在Django中使用WebsocketWebDjango
- 限制使用者使用session數Session
- 使用Index提示 強制使用索引Index索引