Oracle Database
コンテキストの作成
サーチ…
構文
- CREATE [OR REPLACE] CONTEXT名前空間USING [schema。]パッケージ。
- CREATE [OR REPLACE] CONTEXT名前空間USING [スキーマ。]パッケージINITIALIZED EXTERNALLY;
- CREATE [OR REPLACE] CONTEXT名前空間USING [スキーマ。]パッケージINITIALIZED GLOBALLY;
- CREATE [OR REPLACE] CONTEXT名前空間USING [スキーマ。]パッケージACCESSED GLOBALLY;
パラメーター
パラメータ | 詳細 |
---|---|
OR REPLACE | 既存のコンテキスト名前空間を再定義する |
名前空間 | コンテキストの名前 - これはSYS_CONTEXT への呼び出しの名前空間です |
スキーマ | パッケージの所有者 |
パッケージ | コンテキスト属性を設定またはリセットするデータベースパッケージ。注:コンテキストを作成するためにデータベースパッケージが存在する必要はありません。 |
INITIALIZED | コンテキストを設定できるOracle Database以外のエンティティを指定します。 |
EXTERNALLY | OCIインタフェースでコンテキストを初期化できるようにします。 |
GLOBALLY | セッションを確立するときにLDAPディレクトリがコンテキストを初期化できるようにします。 |
ACCESSED GLOBALLY | インスタンス全体でコンテキストにアクセスできるようにします。同じクライアントIDを持つ限り、複数のセッションで属性値を共有できます。 |
備考
Oracleのマニュアル(12cR1): http ://docs.oracle.com/database/121/SQLRF/statements_5003.htm
コンテキストを作成する
CREATE CONTEXT my_ctx USING my_pkg;
これにより、データベースパッケージmy_pkg
内のルーチンによってのみ設定できるコンテキストが作成されます。たとえば、次のようになります。
CREATE PACKAGE my_pkg AS
PROCEDURE set_ctx;
END my_pkg;
CREATE PACKAGE BODY my_pkg AS
PROCEDURE set_ctx IS
BEGIN
DBMS_SESSION.set_context('MY_CTX','THE KEY','Value');
DBMS_SESSION.set_context('MY_CTX','ANOTHER','Bla');
END set_ctx;
END my_pkg;
今、セッションがこれを行う場合:
my_pkg.set_ctx;
これでキーの値を取得できるようになりました:
SELECT SYS_CONTEXT('MY_CTX','THE KEY') FROM dual;
Value
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow