すべてのプロダクト
Search
ドキュメントセンター

PolarDB:DBMS_SESSION

最終更新日:May 28, 2024

組み込みのDBMS_SESSIONパッケージを使用すると、PL/SQLを使用して、SQL ALTER SESSIONおよびSET ROLEステートメントやその他のセッション情報にアクセスできます。

サブプログラム

サブプログラム

説明

CLEAR_ALL_CONTEXTプロシージャ

指定した名前空間のすべてのコンテキスト属性をクリアします。

CLEAR_CONTEXTプロシージャ

指定された名前空間の特定のコンテキスト属性をクリアします。

LIST_CONTEXTプロシージャ

現在のセッションのアクティブな名前空間とコンテキストのリストを返します。

SET_CONTEXTプロシージャ

コンテキスト属性の値を設定またはリセットします。

SET_ROLEプロシージャ

現在のコンテキストのロールを設定します。

睡眠手続き

指定した期間、現在のセッションを中断します。

CLEAR_ALL_CONTEXT

このストアドプロシージャは、指定した名前空間のすべてのコンテキスト属性をクリアするために使用されます。

構文

<bx id="1" type="code" text="code id=" aoqmel "title=" "uuuid=" ljy7b26obe27m3mmaq "code=" DBMS_SESSION.CLEAR_ALL_CONTEXT
名前空間VARCHAR2);"data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_SESSION.CLEAR_ALL_CONTEXT (
   名前空間VARCHAR2); 

Parameters

パラメーター

説明

namespace

コンテキストをクリアする名前空間。

次の例は、指定したコンテキストのすべての属性値をクリアする方法を示しています。

EXEC DBMS_SESSION.CLEAR_ALL_CONTEXT('test_ctx');

CLEAR_CONTEXT

このストアドプロシージャは、指定された名前空間の特定のコンテキスト属性をクリアするために使用されます。

構文

<bx id="1" type="code" text="code id=" 31300393221js "title=" "uuid=" ljy7b66xflkewcgtofp "code=" DBMS_SESSION.CLEAR_CONTEXT
名前空間VARCHAR2、client_identifier IN VARCHAR2 DEFAULT NULL,
属性INVARCHAR2 DEFAULT NULL);"data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_SESSION.CLEAR_CONTEXT (
   名前空間VARCHAR2、
   client_identifier IN VARCHAR2 DEFAULT NULL,
   属性IN VARCHAR2デフォルトNULL); 

Parameters

パラメーター

説明

namespace

コンテキストをクリアする名前空間。

client_identifier

(オプション) パラメータは、Oracleとの互換性のために提供されます。 デフォルト値は NULL です。

attribute

(オプション) 名前空間内の特定の属性の名前。 デフォルト値は NULL です。

次の例は、指定したコンテキストの特定の属性値をクリアする方法を示しています。

<bx id="1" type="code" text="code id=" gz69xz "title=" "uuid=" ljz2bjsz7hbxbp0e974 "code=" CREATE CONTEXT test_ctx USING ctx_pkg;

DECLARE
val VARCHAR2(20);
開始
DBMS_SESSION.SET_CONTEXT('test_ctx', 'a', '1');
val := SYS_CONTEXT('test_ctx', 'a');
DBMS_OUTPUT.PUT_LINE (test_ctxの 'aは: '| | val);

DBMS_SESSION.CLEAR_CONTEXT('test_ctx', NULL, 'a');
val := SYS_CONTEXT('test_ctx', 'a');
IF val IS NULL THEN
DBMS_OUTPUT.PUT_LINE ('test_ctxのaがクリアされました ');
エンドIF;
エンド;

test_ctxの -- aは: 1
-- test_ctxのaがクリアされました "data-tag=" codeblock "outputclass=" language-plsql ""/>CREATE CONTEXT test_ctx USING ctx_pkg;

DECLARE
  val VARCHAR2(20);
開始
  DBMS_SESSION.SET_CONTEXT('test_ctx', 'a', '1');
  val := SYS_CONTEXT('test_ctx', 'a');
  DBMS_OUTPUT.PUT_LINE (test_ctxの 'aは: '| | val);

  DBMS_SESSION.CLEAR_CONTEXT('test_ctx', NULL, 'a');
  val := SYS_CONTEXT('test_ctx', 'a');
  IF val IS NULL THEN
    DBMS_OUTPUT.PUT_LINE ('test_ctxのaがクリアされました ');
  エンドIF;
エンド;

test_ctxの -- aは: 1
-- test_ctxのaがクリアさ
れました

LIST_CONTEXT

このストアドプロシージャは、現在のセッションのアクティブな名前空間とコンテキストのリストを返すために使用されます。

構文

このストアドプロシージャは、カスタム型をパラメータとして使用します。 次の例は、カスタム型とDBMS_SESSION.LIST_CONTEXTプロシージャの構文を示しています。

<bx id="1" type="code" text="code id=" 50c41ed422d04 "title=" "uuid=" ljy7b9y2wtv230ez56 "code=" TYPE AppCtxRecTyp IS RECORD ()
名前空間VARCHAR2(30) 、属性VARCHAR2(30) 、値VARCHAR2(256);

タイプAppCtxTabTypはAppCtxRecTypのテーブルです;

DBMS_SESSION.LIST_CONTEXT ()
リストアウトAppCtxTabTyp、size OUT NUMBER);"data-tag=" codeblock "outputclass=" language-sql ""/>TYPE AppCtxRecTyp IS RECORD (
  名前空間VARCHAR2(30) 、
  属性VARCHAR2(30) 、
  値VARCHAR2(256);

タイプAppCtxTabTypはAppCtxRecTypのテーブルです;

DBMS_SESSION.LIST_CONTEXT () 
   リストアウトAppCtxTabTyp、 
   サイズアウト数); 

Parameters

パラメーター

説明

list

現在のセッション内の名前空間、属性、および値のリスト。

size

リスト内のエントリの数。

次の例は、コンテキスト属性を指定し、LIST_contextストアドプロシージャを使用して、現在のセッションのアクティブな名前空間、コンテキスト属性、および値を返す方法を示しています。

<bx id="1" type="code" text="code code=" ctx_pkgを使用してコンテキストを作成します。DECLARE
att DBMS_SESSION.AppCtxTabTyp;
num NUMBER;
開始
-後でリストできるいくつかの値をコンテキストに設定します
DBMS_SESSION.SET_CONTEXT('test_ctx', 'a', '1');
DBMS_SESSION.SET_CONTEXT('test_ctx', 'b', '2');

-コンテキスト内のすべての属性をリストする
DBMS_SESSION.LIST_CONTEXT(att、num);
DBMS_OUTPUT.PUT_LINE (コンテキスト内のattrsの数は: '| | num);
DBMS_OUTPUT.PUT_LINE('The fisrt attr is: '| att(1).attribute);
DBMS_OUTPUT.PUT_LINE('The fisrt value is: '| att(1).value);
DBMS_OUTPUT.PUT_LINE('The second attr is: '| att(2).attribute);
DBMS_OUTPUT.PUT_LINE('2番目の値は:' | att(2).value);
エンド;

-コンテキスト内のattrsの数は: 2
-- fisrt attrは次のとおりです。-- fisrtの価値は次のとおりです: 1
-2番目のattrは次のとおりです。b
-2番目の値は次のとおりです。2 "id=" 5e2lzx "title=" "uuid=" ljz21jnsihao77oq3 "data-tag=" codeblock "outputclass=" language-plsql ""/>CREATE CONTEXT _testctx USING ctx_pkg;

DECLARE
  att DBMS_SESSION.AppCtxTabTyp;
  num NUMBER;
開始
  -後でリストできるいくつかの値をコンテキストに設定します
  DBMS_SESSION.SET_CONTEXT('test_ctx', 'a', '1');
  DBMS_SESSION.SET_CONTEXT('test_ctx', 'b', '2');

  -コンテキスト内のすべての属性をリストする
  DBMS_SESSION.LIST_CONTEXT(att、num);
  DBMS_OUTPUT.PUT_LINE (コンテキスト内のattrsの数は: '| | num);
  DBMS_OUTPUT.PUT_LINE('最初のattrは:' | att(1).attribute);
  DBMS_OUTPUT.PUT_LINE('最初の値は:' | att(1).value);
  DBMS_OUTPUT.PUT_LINE('The second attr is: '| att(2).attribute);
  DBMS_OUTPUT.PUT_LINE('2番目の値は:' | att(2).value);
エンド;

-コンテキスト内のattrsの数は: 2
-最初のattrは: a
-最初の値は: 1
-2番目のattrは次のとおりです。b
-- 2番目の値は: 2 

SET_CONTEXT

このストアドプロシージャは、コンテキスト属性の値を設定またはリセットするために使用されます。

構文

<bx id="1" type="code" text="code id=" 702f2e43223jd "title=" "uuid=" ljy7bbl4jkdveugmsl "code=" DBMS_SESSION.SET_CONTEXT ()
名前空間VARCHAR2、属性のVARCHAR2、値IN VARCHAR2、ユーザー名VARCHAR2デフォルトNULL、client_id IN VARCHAR2 DEFAULT NULL);"data-tag=" codeblock "outputclass=" language-plsql ""/>DBMS_SESSION.SET_CONTEXT (
   名前空間VARCHAR2、
   属性のVARCHAR2、
   値IN VARCHAR2、
   ユーザー名VARCHAR2デフォルトNULL、
   client_id IN VARCHAR2 DEFAULT NULL); 

Parameters

パラメーター

説明

namespace

コンテキストを設定する名前空間。

attribute

設定するコンテキスト属性。

value

属性値。

username

(オプション) パラメータは、Oracleとの互換性のために提供されます。 デフォルト値は NULL です。

client_id

(オプション) パラメータは、Oracleとの互換性のために提供されます。 デフォルト値は NULL です。

次の例は、SET_CONTEXTストアドプロシージャを使用してcontext属性の値を設定する方法を示しています。

<g id="1" type="code" text="code id=" wqrggx "title=" "uuid=" ljz1fasw9fh068k32u8 "code=" CREATE CONTEXT test_ctx USING ctx_pkg;

DECLARE
val varchar(20);
開始
DBMS_SESSION.SET_CONTEXT('test_ctx' 、'attr' 、'1');
val := SYS_CONTEXT('test_ctx' 、'attr');
DBMS_OUTPUT.PUT_LINE('attr is:'| | val);
エンド;
-- attr is:1 "data-tag=" codeblock "outputclass=" language-plsql "">CREATE CONTEXT test_ctx USING ctx_pkg;

DECLARE
val varchar(20);
開始
DBMS_SESSION.SET_CONTEXT('test_ctx' 、'attr' 、'1');
val := SYS_CONTEXT('test_ctx' 、'attr');
DBMS_OUTPUT.PUT_LINE('attr is:'| | val);
エンド;
-- attrは: 1 

SET_ROLE

このストアドプロシージャは、現在のコンテキストのロールを設定するために使用されます。

構文

<bx id="1" type="code" text="code id=" 091e252322clf "title=" "uuid=" ljy7bdhs27gxlrtki81 "code=" DBMS_SESSION.SET_ROLE ()
role_cmd IN VARCHAR2);"data-tag=" codeblock "outputclass=" language-plsql ""/>DBMS_SESSION.SET_ROLE (
   role_cmdでVARCHAR2); 

Parameters

パラメーター

説明

role_cmd

ロール名。 このパラメーターの値は文字列です。

次の例は、セッションコンテキストのロールを設定する方法を示しています。

<bx id="1" type="code" text="code id=" 06crek "title=" "uuid=" ljy7vdpic3c3quvygq "code=" CREATE USER test_ctx_usrによって識別されます&quot;passwd&quot;

DECLARE
usr varchar(20);
開始
DBMS_SESSION.SET_ROLE('test_ctx_usr ');
usr := SYS_CONTEXT('USERENV', 'SESSION_USER');
-セッションユーザーIS: test_ctx_usr
DBMS_OUTPUT.PUT_LINE('SESSION USER IS: '| | usr);
END;"data-tag=" codeblock "outputclass=" language-plsql ""/>CREATE USER test_ctx_usr IDENTIFIED BY "passwd";

DECLARE
  usr varchar(20);
開始
  DBMS_SESSION.SET_ROLE('test_ctx_usr ');
  usr := SYS_CONTEXT('USERENV', 'SESSION_USER');
  -セッションユーザーIS: test_ctx_usr
  DBMS_OUTPUT.PUT_LINE('SESSION USER IS: '| | usr);
エンド; 

SLEEP

このストアドプロシージャは、指定された期間、現在のセッションを一時停止するために使用されます。

構文

<bx id="1" type="code" text="code id=" 18d98cc32291r "title=" "uuid=" ljy7bfbyb4qcpmbvm1d "code=" DBMS_SESSIONS.LEEP (
秒数);"data-tag=" codeblock "outputclass=" language-plsql ""/> DBMS_SESSIONS.LEEP (
   秒数); 

Parameters

パラメーター

説明

セッションが中断されている期間。 単位は秒です。

次の例は、セッションを指定した期間中断する方法を示しています。

EXEC DBMS_SESSIONS.LEEP (2);