如何正確的使用sys_context函數(shù)

本篇文章給大家分享的是有關如何正確的使用sys_context函數(shù),小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

10年積累的成都網(wǎng)站制作、成都網(wǎng)站設計經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先做網(wǎng)站后付款的網(wǎng)站建設流程,更有通州免費網(wǎng)站建設讓你可以放心的選擇與我們合作。

sys_context函數(shù)是Oracle提供的一個獲取環(huán)境上下文信息的預定義函數(shù)。該函數(shù)用來返回一個指定namespace下的parameter值。該函數(shù)可以在sql和PL/SQL語言中使用。sys_context實際上就是一個Oracle存儲和傳遞參數(shù)的容器訪問函數(shù)。我們登入Oracle服務器,是帶有會話信息和其他一些屬性信息的。其中,有一些是Oracle預定義的,登錄系統(tǒng)的時候自動填入到指定的變量中。另一個函數(shù)userenv()保留與之兼容。

以下是可以通過sys_context函數(shù)獲取到的一些信息:

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;

我們還可以自己定義上下文參數(shù)來傳遞值,下面是sys_context函數(shù)的使用格式:
sys_context('namespace', 'parameter'{, length});

其中,namespace是存儲信息的一個組單位,namespace是按照類別進行分類的。一個namespace下可以有多個參數(shù)值,通過不同的parameter進行區(qū)分。namespace是預先定義好的SQL標識符,而parameter是可以任意大小寫非敏感的字符串,不超過30位長度。函數(shù)返回值為varchar2類型,長度默認為256位。如果需要限制這個默認值,可以length參數(shù)作為新的返回長度值。

設置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

以上就是如何正確的使用sys_context函數(shù),小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站名稱:如何正確的使用sys_context函數(shù)
文章網(wǎng)址:http://muchs.cn/article22/ghgocc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信公眾號、靜態(tài)網(wǎng)站全網(wǎng)營銷推廣、Google、標簽優(yōu)化、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設