DBMS_XS_SESSIONSパッケージ

DBMS_XS_SESSIONSパッケージは、アプリケーション・セッションを管理します。

セキュリティ・モデル

DBMS_XS_SESSIONSパッケージは、SYSスキーマに作成されます。パッケージの実行権限はPUBLICに付与されます。実行するユーザーには、特定の操作に対する適切な権限が必要です。

定数

次の定数は、ネームスペース・イベント処理ファンクションに渡される操作コードを定義します。

attribute_first_read_operation CONSTANT PLS_INTEGER := 1;
modify_attribute_operation     CONSTANT PLS_INTEGER := 2;

次の定数は、イベント処理ファンクションを持つネームスペース内の特定の属性の対象イベントを識別するビット値を表します。

attribute_first_read_event     CONSTANT PLS_INTEGER := 1;
modify_attribute_event         CONSTANT PLS_INTEGER := 2;

次の定数は、ネームスペース・イベント処理ファンクションによって戻される可能性のある戻りコードを定義します。

event_handling_succeeded       CONSTANT PLS_INTEGER := 0;
event_handling_failed          CONSTANT PLS_INTEGER := 1;

次の定数は、ADD_GLOBAL_CALLBACKDELETE_GLOBAL_CALLBACKおよびENABLE_GLOBAL_CALLBACKプロシージャへの入力として使用されます。

create_session_event       CONSTANT PLS_INTEGER := 1;
attach_session_event       CONSTANT PLS_INTEGER := 2;
guest_to_user_event        CONSTANT PLS_INTEGER := 3;
proxy_to_user_event        CONSTANT PLS_INTEGER := 4;
revert_to_user_event       CONSTANT PLS_INTEGER := 5;
enable_role_event          CONSTANT PLS_INTEGER := 6;
disable_role_event         CONSTANT PLS_INTEGER := 7;
enable_dynamic_role_event  CONSTANT PLS_INTEGER := 8;
disable_dynamic_role_event CONSTANT PLS_INTEGER := 9;
detach_session_event       CONSTANT PLS_INTEGER := 10;
terminate_session_event    CONSTANT PLS_INTEGER := 11;
direct_login_event         CONSTANT PLS_INTEGER := 12;
direct_logoff_event        CONSTANT PLS_INTEGER := 13;

オブジェクト・タイプ、コンストラクタ・ファンクション、シノニムおよび付与

このパッケージには、次のオブジェクト・タイプ、コンストラクタ・ファンクション、シノニムおよびGRANT文が定義されています。

CREATE OR REPLACE TYPE DBMS_XS_NSATTR AS OBJECT ( 
  --- Member variables   
  namespace        varchar2(130),
  attribute        varchar2(4000),
  attribute_value  varchar2(4000),
 
  --- Constructor for DBMS_XS_NSATTR type
  --- Only namespace name is mandatory
  CONSTRUCTOR FUNCTION DBMS_XS_NSATTR(
     namespace         IN VARCHAR2,
     attribute         IN VARCHAR2 DEFAULT NULL,
     attribute_value   IN VARCHAR2 DEFAULT NULL)
  RETURN SELF AS RESULT);

CREATE OR REPLACE PUBLIC SYNONYM DBMS_XS_NSATTR FOR SYS.DBMS_XS_NSATTR;
CREATE OR REPLACE TYPE DBMS_XS_NSATTRLIST AS VARRAY(1000) OF DBMS_XS_NSATTR;
CREATE OR REPLACE PUBLIC SYNONYM DBMS_XS_NSATTRLIST FOR SYS.DBMS_XS_NSATTRLIST;
GRANT EXECUTE ON DBMS_XS_NSATTR TO PUBLIC;
GRANT EXECUTE ON DBMS_XS_NSATTRLIST TO PUBLIC;
CREATE OR REPLACE PUBLIC SYNONYM DBMS_XS_SESSIONS FOR SYS.DBMS_XS_SESSIONS;
GRANT EXECUTE ON DBMS_XS_SESSIONS TO PUBLIC;

DBMS_XS_SESSIONSサブプログラムの要約

表11-2 DBMS_XS_SESSIONSサブプログラムの要約

サブプログラム 説明

CREATE_SESSIONプロシージャ

指定されたアプリケーション・ユーザー名の新規アプリケーション・セッションを作成します。

ATTACH_SESSIONプロシージャ

現在の従来型データベース・セッションを、セッションIDで識別されるアプリケーション・セッションに連結します。

ASSIGN_USERプロシージャ

指定されたユーザーを現在連結されている匿名Real Application Securityセッションに割り当てます。

SWITCH_USERプロシージャ

現在連結されているセッションのアプリケーション・ユーザーを切り替えます。

CREATE_NAMESPACEプロシージャ

現在連結されているアプリケーション・セッションに新規アプリケーション・ネームスペースを作成します。

CREATE_ATTRIBUTEプロシージャ

現在連結されているアプリケーション・セッションの指定されたアプリケーション・ネームスペースに新規カスタム属性を作成します。

SET_ATTRIBUTEプロシージャ

現在連結されているアプリケーション・セッションのネームスペース内の指定された属性に新しい値を設定します。

GET_ATTRIBUTEプロシージャ

現在連結されているアプリケーション・セッションのネームスペース内の属性の値を取得します。

RESET_ATTRIBUTEプロシージャ

現在連結されているアプリケーション・セッションの指定したネームスペース内のアプリケーション・ネームスペース属性を元の値にリセットします。

DELETE_ATTRIBUTEプロシージャ

現在連結されているアプリケーションの指定したネームスペースから指定した属性を削除します。

DELETE_NAMESPACEプロシージャ

現在連結されているアプリケーション・セッションから指定されたネームスペースおよびその属性を削除します。

ENABLE_ROLEプロシージャ

現在連結されているアプリケーション・セッションで実際のアプリケーション・ロールを有効にします。

DISABLE_ROLEプロシージャ

現在連結されているアプリケーション・セッションから実際のアプリケーション・ロールを無効にします。

SET_SESSION_COOKIEプロシージャ

指定されたセッションIDで新しいCookie値を設定します。

REAUTH_SESSIONプロシージャ

指定されたセッションIDで識別されるセッションの最終認証時刻を更新します。

SET_INACTIVITY_TIMEOUTプロシージャ

指定されたセッションの非アクティブ・タイムアウト値を分単位で設定します。

SAVE_SESSIONプロシージャ

現在連結されているセッションで実行された変更を保存または永続化します。

DETACH_SESSIONプロシージャ

現在の従来型データベース・セッションを、連結先のアプリケーション・セッションから連結解除します。

DESTROY_SESSIONプロシージャ

セッションIDで指定されたセッションを破棄または終了します。

ADD_GLOBAL_CALLBACKプロシージャ

既存のイベント・ハンドラをデータベースに登録します。

ENABLE_GLOBAL_CALLBACKプロシージャ

event_typeパラメータで指定されたセッション・イベントのグローバル・コールバックを有効または無効にします。

DELETE_GLOBAL_CALLBACKプロシージャ

既存のグローバル・コールバック・アソシエーションを削除します。

この項では次のDBMS_XS_SESSIONSサブプログラムについて説明します。

CREATE_SESSIONプロシージャ

CREATE_SESSIONプロシージャは、指定されたユーザー名の新規アプリケーション・セッションを作成します。将来のコールでセッションを参照するために使用できるセッション識別子を戻します。

セッションは、標準アプリケーション・ユーザーまたは外部アプリケーション・ユーザーで作成できます。セッションは信頼モードまたはセキュア・モードで作成できます。信頼モードでは、データ・セキュリティ・チェックがバイパスされます。セキュア・モードでは、データセキュリティ・チェックが施行されます。

信頼モードでの標準セッションの組合せはサポートされません。その他の組合せ、つまりセキュア・モードでの標準セッション、信頼モードでの外部セッション、またはセキュア・モードでの外部セッションはサポートされます。

namespacesパラメータは、作成するネームスペース、作成する属性および設定する属性値の3つのリストです。これはオプションのパラメータです。デフォルト値はNULLです。XS$GLOBAL_VARおよびXS$SESSIONネームスペースとその属性は常にセッションで使用可能です。

このファンクションは、現在の従来型セッションを新規に作成されたアプリケーション・セッションに連結しません。このタスクを実行するにはATTACH_SESSIONプロシージャを使用します。

プロシージャを実行するユーザーには、usernameパラメータで指定されたアプリケーション・ユーザーに対するCREATE_SESSIONアプリケーション権限が必要です。セッションの作成時に作成されるネームスペースのリストも指定できます。セッションの作成時にネームスペースを指定した場合、コール元にはネームスペースに対するアプリケーション権限MODIFY_NAMESPACEまたはMODIFY_ATTRIBUTEが付与されているか、ADMIN_NAMESPACEシステム権限が付与されている必要があります。

構文

CREATE_SESSION (
 username      IN  VARCHAR2,
 sessionid     OUT NOCOPY RAW,
 is_external   IN  BOOLEAN DEFAULT FALSE,
 is_trusted    IN  BOOLEAN DEFAULT FALSE,
 namespaces    IN  DBMS_XS_NSATTRLIST DEFAULT NULL,
 cookie        IN  VARCHAR2 DEFAULT NULL); 

パラメータ

パラメータ 説明

username

アプリケーション・セッションを作成する標準アプリケーション・ユーザーまたは外部アプリケーション・ユーザーの名前。

現在のセッションのユーザー名およびアプリケーション・ロールのリストを検索するには、DBA_XS_USERSデータ・ディクショナリ・ビューを問い合せます。すべてのアプリケーション・ユーザーおよびロールを検索するには、DBA_XS_PRINCIPALSデータ・ディクショナリ・ビューを次のように問い合せます。

ユーザー:

SELECT NAME FROM DBA_XS_USERS;

ロール:

SELECT NAME FROM DBA_XS_ROLES;

SELECT NAME FROM DBA_XS_DYNAMIC_ROLES;

sessionid

新規に作成したアプリケーション・セッションのセッションID。次のいずれかの方法を使用して、セッションIDを取得できます。

  • SELECT XS_SYS_CONTEXT('XS$SESSION', 'SESSION_ID') FROM DUAL;

  • DBMS_XS_SESSIONS.GET_ATTRIBUTEプロシージャの使用。

is_external

セッションを外部プリンシパル・セッションとして作成するかどうか指定します。これはオプションのパラメータです。デフォルト値はFALSEで、標準セッションを作成することを示します。NULL値はFALSEを意味します。

is_trusted

セッションを信頼モードとセキュア・モードのどちらで作成するかを指定します。信頼モードでは、データ・セキュリティ・チェックがバイパスされます。セキュア・モードでは、データセキュリティ・チェックが施行されます。これはオプションのパラメータです。デフォルト値はFALSEで、セキュア・モードを示します。NULL値はFALSEを意味します。

namespaces

名前、属性および属性値の3つのリスト。ネームスペースがセッションからアクセスできないか、このようなネームスペース・テンプレートが存在しない場合は、エラーがスローされます。

cookie

セッションに対して設定するサーバーCookieを指定します。これはオプションのパラメータです。デフォルト値はNULLです。Cookieに対して許可される最大長は1024バイトです。

DECLARE
  nsList DBMS_XS_NSATTRLIST;
  sessionid RAW(16);
BEGIN
    nsList := DBMS_XS_NSATTRLIST(DBMS_XS_NSATTR('ns1'),DBMS_XS_NSATTR('ns2'));
    SYS.DBMS_XS_SESSIONS.CREATE_SESSION('lwuser1', sessionid, FALSE, FALSE, nsList);
END;

ATTACH_SESSIONプロシージャ

ATTACH_SESSIONプロシージャは、現在の従来型データベース・セッションをセッションID (session_id)で識別されるアプリケーション・セッションに連結します。連結されたセッションにより、セッションを作成したアプリケーション・ユーザーに(直接または間接的に)付与されているロールおよびこのセッションの最後の連結解除まで有効だったセッション・スコープの動的アプリケーション・ロールが有効になります。オプションのパラメータenable_dynamic_rolesを使用して動的アプリケーション・ロールのリストでATTACH_SESSIONを実行した場合、提供されている動的アプリケーション・ロールがセッションに対して有効になります。動的ロールのリストを無効にするには、オプションのパラメータdisable_dynamic_rolesを使用してリストを指定します。

連結操作中に3つの値(ネームスペース、属性、属性値)のリストを指定できます。ネームスペースおよび属性が作成され、属性値が設定されます。これは、セッションに存在するネームスペースおよび属性に加えて作成されます。

このプロシージャを実行するには、従来のセッション・ユーザーにATTACH_SESSIONアプリケーション権限が必要です。ネームスペースを指定する場合、ユーザーにはネームスペースに対するアプリケーション権限MODIFY_NAMESPACEまたはMODIFY_ATTRIBUTE、あるいはADMIN_NAMESPACEシステム権限が付与されている必要があります。

明示的に連結されているセッション(JavaのATTACH_SESSIONプロシージャまたはattachSession()メソッドを使用して連結されているセッション)から呼び出された場合、セッションにALTER_USER権限が必要であり、PASSWORDコマンドにユーザー名が指定されていれば、SQL*Plus PASSWORDコマンドを使用してセルフ・パスワード変更を行うことができます。

構文

ATTACH_SESSION (
 sessionid              IN RAW,
 enable_dynamic_roles   IN XS$NAME_LIST         DEFAULT NULL,
 disable_dynamic_roles  IN XS$NAME_LIST         DEFAULT NULL,
 external_roles         IN XS$NAME_LIST         DEFAULT NULL,
 authentication_time    IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
 namespaces             IN DBMS_XS_NSATTRLIST   DEFAULT NULL);

パラメータ

パラメータ 説明

sessionid

アプリケーション・セッションのセッションID。次のいずれかの方法を使用して、セッションIDを取得できます。

  • SELECT XS_SYS_CONTEXT('XS$SESSION', 'SESSION_ID') FROM DUAL;

  • DBMS_XS_SESSIONS.GET_ATTRIBUTEプロシージャの使用。

enable_dynamic_roles

アプリケーション・セッションで有効にする、付与する動的ロールのリスト。これはオプションのパラメータです。指定されたいずれかの動的ロールが存在しない場合は、セッションの連結が失敗します。セッションが外部プリンシパル・セッションの場合は、有効にする外部ロールのリストを指定できます。これらのロールは連結解除されるまで有効なままになり、次の連結でデフォルトでは有効になりません。

現在のセッションのアプリケーション・ロールのリストを検索するには、DBA_XS_SESSION_ROLESデータ・ディクショナリ・ビューを問い合せます。すべての動的アプリケーション・ロールのリストを検索するには、DBA_XS_PRINCIPALSデータ・ディクショナリ・ビューを次のように問い合せます。

SELECT NAME, TYPE FROM DBA_XS_PRINCIPALS; 

disable_dynamic_roles

セッションで無効にする動的ロールのリスト。これはオプションのパラメータです。

external_roles

セッションが外部プリンシパル・セッションの場合に外部ロールのリスト。これはオプションのパラメータです。これらの外部ロールは連結解除操作まで有効なままになり、次の連結でデフォルトでは再度有効になりません。

authentication_time

セッションに対して更新された認証時刻。これはオプションのパラメータです。時刻は次の形式で指定する必要があります。

YYYY-MM-DD HH:MI:SS.FF TZR

namespaces

名前、属性および属性値の3つのリスト。ネームスペースがセッションからアクセスできないか、このようなネームスペース・テンプレートが存在しない場合は、エラーがスローされます。

DECLARE
  nsList DBMS_XS_NSATTRLIST;
  sessionid RAW(16);
BEGIN
    nsList := DBMS_XS_NSATTRLIST(DBMS_XS_NSATTR('ns1'),DBMS_XS_NSATTR('ns2'));
    SYS.DBMS_XS_SESSIONS.CREATE_SESSION('lwuser1', sessionid);
    SYS.DBMS_XS_SESSIONS.ATTACH_SESSION(sessionid, NULL, NULL, NULL, NULL, nsList);  
END;

ASSIGN_USERプロシージャ

ASSIGN_USERプロシージャは、指定されたアプリケーション・ユーザーを現在連結されている匿名アプリケーション・セッションに割り当てます。

現在のセッションで有効になっているロールは、この操作後も保持されます。オプションのパラメータenable_dynamic_rolesおよびdisable_dynamic_rolesは、有効または無効にする動的ロールの追加リストを指定します。割り当てられたユーザーが外部の場合は、有効にする外部ロールのリストを指定できます。

割当て操作中に3つの値(ネームスペース、属性、属性値)のリストを指定できます。セッションにネームスペースおよび属性が作成され、属性値が設定されます。これは、セッションにすでに存在するネームスペースおよび属性に加えて作成されます。

このプロシージャを実行するには、ディスパッチャまたは接続ユーザーにASSIGN_USERアプリケーション権限が必要です。ネームスペースを指定する場合、ユーザーにはネームスペースに対するアプリケーション権限MODIFY_NAMESPACEまたはMODIFY_ATTRIBUTE、あるいはADMIN_NAMESPACEシステム権限が付与されている必要があります。

構文

DBMS_XS_SESSIONS.ASSIGN_USER (
 username              IN VARCHAR2, 
 is_external           IN BOOLEAN                  DEFAULT FALSE,
 enable_dynamic_roles  IN XS$NAME_LIST             DEFAULT NULL,
 disable_dynamic_roles IN XS$NAME_LIST             DEFAULT NULL,
 external_roles        IN XS$NAME_LIST             DEFAULT NULL,
 authentication_time   IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
 namespaces            IN DBMS_XS_NSATTRLIST       DEFAULT NULL);

パラメータ

パラメータ 説明

username

実際のアプリケーション・ユーザーの名前。

既存のアプリケーション・ユーザーのリストを検索するには、DBA_XS_PRINCIPALSデータ・ディクショナリ・ビューを次のように問い合せます。

SELECT NAME FROM DBA_XS_PRINCIPALS;

is_external

指定されたアプリケーション・ユーザーが外部ユーザーかどうかを指定します。これはオプションのパラメータです。デフォルト値はFALSEで、標準アプリケーション・ユーザーが割り当てられていることを示します。NULL値はFALSEを意味します。

enable_dynamic_roles

アプリケーション・セッションで有効にする動的ロールのリスト。これはオプションのパラメータです。

現在のセッションのアプリケーション・ロールのリストを検索するには、V$XS_SESSION_ROLESデータ・ディクショナリ・ビューを問い合せます。すべての動的アプリケーション・ロールのリストを検索するには、DBA_XS_DYNAMIC_ROLESデータ・ディクショナリ・ビューを次のように問い合せます。

SELECT NAME FROM DBA_XS_DYNAMIC_ROLES;

disable_dynamic_roles

セッションで無効にする動的ロールのリスト。これはオプションのパラメータです。

external_roles

アプリケーション・ユーザーが外部アプリケーション・ユーザーの場合に外部ロールのリスト。これはオプションのパラメータです。

authentication_time

セッションに対して更新された認証時刻。これはオプションのパラメータです。時刻は次の形式で指定する必要があります。

YYYY-MM-DD HH:MI:SS.FF TZR

namespaces

名前、属性および属性値の3つのリスト。ネームスペースがセッションからアクセスできないか、このようなネームスペース・テンプレートが存在しない場合は、エラーがスローされます。

DECLARE
  nsList DBMS_XS_NSATTRLIST;
  sessionid RAW(16); 
BEGIN 
  nsList := DBMS_XS_NSATTRLIST(DBMS_XS_NSATTR('ns1'),DB);
  SYS.DBMS_XS_SESSIONS.CREATE_SESSION('lwuser1', sessionid);
  SYS.DBMS_XS_SESSIONS.ATTACH_SESSION(sessionid);  
  SYS.DBMS_XS_SESSIONS.ASSIGN_USER(username => 'lwuser2',
                                   namespaces => nsList);
END;

SWITCH_USERプロシージャ

SWITCH_USERプロシージャは、現在連結されているセッションのアプリケーション・ユーザーを切り替えます。XS_PRINCIPAL.ADD_PROXY_USER PL/SQL APIを使用して別のアプリケーション・ユーザー権限のプロキシを取得することで切替え操作を実行する前に、現在のアプリケーション・ユーザーがターゲット・アプリケーション・ユーザーのプロキシ・ユーザーになっている必要があります。ターゲット・ユーザーのフィルタリング・アプリケーション・ロールのリストがセッションで有効になります。

セッションの現在のアプリケーション・ネームスペースを保持または破棄できます。切替え後に作成するネームスペースおよび設定する属性値のリストも指定できます。ネームスペースを指定する場合、ユーザーにはネームスペースに対するアプリケーション権限MODIFY_NAMESPACEまたはMODIFY_ATTRIBUTE、あるいはADMIN_NAMESPACEシステム権限が付与されている必要があります。

構文

SWITCH_USER (
 username          IN VARCHAR2,
 keep_state        IN BOOLEAN              DEFAULT FALSE, 
 namespaces        IN DBMS_XS_NSATTRLIST   DEFAULT NULL);

パラメータ

パラメータ 説明

username

切替え先のセキュリティ・コンテキストを持つユーザーのユーザー名。

既存のアプリケーション・ユーザーのリストを検索するには、DBA_XS_USERSデータ・ディクショナリ・ビューを次のように問い合せます。

SELECT NAME FROM DBA_XS_USERS;

keep_state

アプリケーション・ネームスペースが保持されるかどうかを制御します。

可能な値は次のとおりです。

  • TRUE: 他のすべてのセッション状態を変更しないように設定します。

  • FALSE: セッションの前の状態をクリアします。デフォルト値です。

namespaces

名前、属性および属性値の3つのリスト。ネームスペースがセッションからアクセスできないか、このようなネームスペース・テンプレートが存在しない場合は、エラーがスローされます。

DECLARE
  nsList := DBMS_XS_NSATTRLIST(DBMS_XS_NSATTR('ns1'),DBMS_XS_NSATTR('ns2'));
  sessionid RAW(16);
BEGIN 
  SYS.DBMS_XS_SESSIONS.CREATE_SESSION('lwuser1', sessionid);
  SYS.DBMS_XS_SESSIONS.ATTACH_SESSION(sessionid);
  SYS.DBMS_XS_SESSIONS.SWITCH_USER(username => 'lwuser2',
                                   keep_state => TRUE,
                                   namespaces => nsList);
END;

CREATE_NAMESPACEプロシージャ

CREATE_NAMESPACEプロシージャは、現在連結されているアプリケーション・セッションに新規ネームスペースを作成します。ネームスペースに対応するネームスペース・テンプレートがシステムに存在する必要があり、存在しないと、この操作はエラーをスローします。この操作の後、ネームスペースおよびテンプレートに作成されたその属性がセッションで使用可能になります。

コール元のユーザーには、MODIFY_NAMESPACEアプリケーション権限が必要です。

構文

CREATE_NAMESPACE( 
 namespace      IN VARCHAR2);

パラメータ

パラメータ 説明

namespace

作成するネームスペースの名前。この名前の既存のネームスペース・テンプレート・ドキュメントが必要です。大/小文字を区別する文字列の最大サイズは128文字です。

現在のセッションの既存のネームスペースのリストを検索するには、連結後にV$XS_SESSION_NS_ATTRIBUTESデータ・ディクショナリ・ビューを問い合せます。DBA_XS_SESSION_NS_ATTRIBUTESデータ・ディクショナリ・ビューを問い合せて、すべてのアプリケーション・セッションのすべてのネームスペースを確認できます。

DBA_XS_NS_TEMPLATESおよびDBA_XS_NS_TEMPLATE_ATTRIBUTESデータ・ディクショナリ・ビューでネームスペース・テンプレートおよび属性のリストを問い合せることができます。

BEGIN
 SYS.DBMS_XS_SESSIONS.CREATE_NAMESPACE('J_NS1');
END;

CREATE_ATTRIBUTEプロシージャ

CREATE_ATTRIBUTEプロシージャは、現在連結されているアプリケーション・セッションの指定されたネームスペースに新規カスタム属性を作成します。ネームスペースがセッションですでに使用可能でないかこのようなネームスペース・テンプレートが存在しない場合は、エラーがスローされます。

コール元ユーザーにはMODIFY_ATTRIBUTEアプリケーション権限が付与されている必要があります。

構文

PROCEDURE create_attribute(
namespace IN VARCHAR2,
attribute IN VARCHAR2,
value     IN VARCHAR2    DEFAULT NULL,
eventreg  IN PLS_INTEGER DEFAULT NULL);

パラメータ

パラメータ 説明

namespace

属性が作成されるネームスペース。セッションにネームスペースが存在しない場合は、エラーがスローされます。大/小文字を区別する文字列の最大サイズは128文字です。

attribute

作成する属性の名前。大/小文字を区別する文字列の最大サイズは4000文字です。

value

属性のデフォルト値。大/小文字を区別する文字列の最大サイズは4000文字です。

eventreg

属性に対してハンドラが実行されるイベント。これはオプションのパラメータです。このパラメータの値は、次のいずれかです。

  • DBMS_XS_SESSIONS.attribute_first_read_event

    ハンドラ・ファンクションは、属性取得リクエストを受信し、属性の値が設定されていない場合にコールされます。このイベントは、デフォルト値がNULLに設定されている場合にのみ登録できます。この値は、XS_NAMESPACEパッケージまたはAdmin APIのFIRSTREAD_EVENT定数に対応します。

  • DBMS_XS_SESSIONS.modify_attribute_event:

    ハンドラ・ファンクションは、属性設定リクエストを受信するたびにコールされます。この値は、XS_NAMESPACEパッケージまたはAdmin APIのUPDATE_EVENT定数に対応します。

属性が最初の読取りイベントに対して登録されている場合、ハンドラは、値を戻す前に属性が初期化されていない場合に実行されます。更新イベントが登録されている場合は、属性が変更されるたびにハンドラがコールされます。イベントは、ネームスペースにイベント・ハンドラがある場合にのみ登録でき、それ以外の場合はエラーがスローされます。

BEGIN
 SYS.DBMS_XS_SESSIONS.CREATE_ATTRIBUTE('NS1','NS1CUSTOM','NS1CUSTOMDEFAULT');
END;

-- Example with firstRead event set
BEGIN
SYS.DBMS_XS_SESSIONS.create_Attribute('ns1','attr4',NULL,
                                       DBMS_XS_SESSIONS.attribute_first_read_event);
END;

SET_ATTRIBUTEプロシージャ

SET_ATTRIBUTEプロシージャは、現在連結されているセッションに関連付けられているネームスペースの指定された属性に新しい値を設定します。ハンドラ・ファンクションは、属性に対してupdateイベントが設定されている場合にコールされます。ネームスペースが存在しないか削除されている場合は、エラーがスローされます。存在するネームスペースに対応するテンプレートがない場合は、エラーがスローされます。

コール元ユーザーにはMODIFY_ATTRIBUTEアプリケーション権限が付与されている必要があります。

構文

SET_ATTRIBUTE (
 namespace    IN VARCHAR2,
 attribute    IN VARCHAR2,
 value        IN VARCHAR2);

パラメータ

パラメータ 説明

namespace

属性に関連付けられているネームスペースの名前。大/小文字を区別する文字列の最大サイズは128文字です。

現在のセッションの既存のネームスペースのリストを検索するには、連結後にV$XS_SESSION_NS_ATTRIBUTESデータ・ディクショナリ・ビューを問い合せます。DBA_XS_SESSION_NS_ATTRIBUTESデータ・ディクショナリ・ビューを問い合せて、すべてのアプリケーション・セッションのすべてのネームスペースを確認できます。

DBA_XS_NS_TEMPLATESおよびDBA_XS_NS_TEMPLATE_ATTRIBUTESデータ・ディクショナリ・ビューでネームスペース・テンプレートおよび属性のリストを問い合せることができます。

attribute

既存のネームスペース内の既存の属性の名前。

既存のネームスペース属性のリストを検索するには、V$XS_SESSION_NS_ATTRIBUTESデータ・ディクショナリ・ビューを問い合せます。

value

属性の新しい値。大/小文字を区別する文字列の最大サイズは4000文字です。

属性に関連付けられている既存の値のリストを検索するには、V$XS_SESSION_NS_ATTRIBUTESデータ・ディクショナリ・ビューを問い合せます。

BEGIN
 SYS.DBMS_XS_SESSIONS.SET_ATTRIBUTE('J_NS','JohnNSAttr1','John bio');
END;

GET_ATTRIBUTEプロシージャ

GET_ATTRIBUTEプロシージャは、現在連結されているセッションのネームスペースの指定された属性の値を取得します。ネームスペースに対応するテンプレートが存在しない場合は、エラーがスローされます。指定された属性が存在しない場合は、空の文字列が戻されます。

属性値がNULLで、firstReadイベントが設定され、このとき初めて属性値がフェッチされる場合は、属性のハンドラ・ファンクションがコールされます。

コール元ユーザーには、どの権限も付与されている必要はありません。

構文

GET_ATTRIBUTE (
 namespace   IN         VARCHAR2,
 attribute   IN         VARCHAR2,
 value       OUT NOCOPY VARCHAR2);

パラメータ

パラメータ 説明

namespace

取得する属性のネームスペース。大/小文字を区別する文字列の最大サイズは128文字です。

現在のセッションの既存のネームスペースのリストを検索するには、連結後にV$XS_SESSION_NS_ATTRIBUTESデータ・ディクショナリ・ビューを問い合せます。DBA_XS_SESSION_NS_ATTRIBUTESデータ・ディクショナリ・ビューを問い合せて、すべてのアプリケーション・セッションのすべてのネームスペースを確認できます。

attribute

取得する属性の名前。大/小文字を区別する文字列の最大サイズは4000文字です。使用可能な属性のリストを検索するには、V$XS_SESSION_NS_ATTRIBUTESデータ・ディクショナリ・ビューを問い合せます。

value

取得する属性の値。

使用可能な属性値のリストを検索するには、V$XS_SESSION_NS_ATTRIBUTESデータ・ディクショナリ・ビューを問い合せます。

DECLARE 
attrVal VARCHAR2(4000);
BEGIN
 SYS.DBMS_XS_SESSIONS.GET_ATTRIBUTE('J_NS1','JohnNS1Attr1',attrVal);
END;

RESET_ATTRIBUTEプロシージャ

RESET_ATTRIBUTEプロシージャは、現在連結されているセッションのネームスペース内で属性の値をデフォルト値(存在する場合)またはNULLにリセットします。属性にデフォルト値が指定されている場合、値はデフォルト値にリセットされます。属性がデフォルト値なしで作成され、attribute_first_read_eventでマークされている場合は、値がNULLに設定され、未初期化としてマークされます。属性がデフォルト値なしで作成され、attribute_first_read_eventでマークされていない場合は、値がNULLに設定されます。

コール元ユーザーにはMODIFY_ATTRIBUTEアプリケーション権限が付与されている必要があります。

構文

PROCEDURE reset_attribute(
namespace   IN VARCHAR2,
attribute   IN VARCHAR2);

パラメータ

パラメータ 説明

namespace

属性を含むネームスペースの名前。大/小文字を区別する文字列の最大サイズは128文字です。

attribute

リセットする属性の名前。大/小文字を区別する文字列の最大サイズは4000文字です。

BEGIN
 SYS.DBMS_XS_SESSIONS.RESET_ATTRIBUTE('ns2','attr1');
END;

DELETE_ATTRIBUTEプロシージャ

DELETE_ATTRIBUTEプロシージャは、現在連結されているセッションの指定されたネームスペースから指定された属性および関連付けられている値を削除します。カスタム属性のみ削除できます。テンプレート属性は削除できません。指定された属性が存在しない場合は、エラーがスローされます。

コール元アプリケーションにはMODIFY_ATTRIBUTEアプリケーション権限が付与されている必要があります。

構文

DELETE_ATTRIBUTE (
 namespace     IN VARCHAR2,
 attribute     IN VARCHAR2);

パラメータ

パラメータ 説明

namespace

削除する属性に関連付けられているネームスペース。大/小文字を区別する文字列の最大サイズは128文字です。

現在のセッションの既存のネームスペースのリストを検索するには、連結後にV$XS_SESSION_NS_ATTRIBUTESデータ・ディクショナリ・ビューを問い合せます。DBA_XS_SESSION_NS_ATTRIBUTESデータ・ディクショナリ・ビューを問い合せて、すべてのアプリケーション・セッションのすべてのネームスペースを確認できます。

DBA_XS_NS_TEMPLATESおよびDBA_XS_NS_TEMPLATE_ATTRIBUTESデータ・ディクショナリ・ビューでネームスペース・テンプレートおよび属性のリストを問い合せることができます。

attribute

削除する属性。

現在のセッションの既存のネームスペースのリストを検索するには、連結後にV$XS_SESSION_NS_ATTRIBUTESデータ・ディクショナリ・ビューを問い合せます。DBA_XS_SESSION_NS_ATTRIBUTESデータ・ディクショナリ・ビューを問い合せて、すべてのアプリケーション・セッションのすべてのネームスペースを確認できます。

BEGIN
 SYS.DBMS_XS_SESSIONS.DELETE_ATTRIBUTE('JohnNS1','JohnNS1Attr1');
END;

DELETE_NAMESPACEプロシージャ

DELETE_NAMESPACEプロシージャは、ネームスペースおよびその属性を現在連結されているアプリケーション・セッションから削除します。

コール元のユーザーには、MODIFY_NAMESPACEアプリケーション権限が必要です。

構文

DELETE_NAMESPACE (
 namespace   IN VARCHAR2);

パラメータ

パラメータ 説明

namespace

削除するネームスペースの名前。大/小文字を区別する文字列の最大サイズは128文字です。

現在のセッションの既存のネームスペースのリストを検索するには、連結後にV$XS_SESSION_NS_ATTRIBUTESデータ・ディクショナリ・ビューを問い合せます。DBA_XS_SESSION_NS_ATTRIBUTESデータ・ディクショナリ・ビューを問い合せて、すべてのアプリケーション・セッションのすべてのネームスペースを確認できます。

DBA_XS_NS_TEMPLATESおよびDBA_XS_NS_TEMPLATE_ATTRIBUTESデータ・ディクショナリ・ビューでネームスペース・テンプレートおよび属性のリストを問い合せることができます。

BEGIN
 SYS.DBMS_XS_SESSIONS.DELETE_NAMESPACE('JohnNS1');
END;

ENABLE_ROLEプロシージャ

ENABLE_ROLEプロシージャは、現在連結されているアプリケーション・セッションで実際のアプリケーション・ロールを有効にします。ロールがすでに有効になっている場合、ENABLE_ROLEプロシージャはアクションを実行しません。このプロシージャは、現在のアプリケーション・ユーザーに直接付与されている標準アプリケーション・ロールのみ有効にします。動的アプリケーション・ロールは有効にできません。

この操作では、コール元ユーザーにアプリケーション権限は不要です。

構文

ENABLE_ROLE (
 role   IN VARCHAR2);

パラメータ

パラメータ 説明

role

有効にするロールの名前。大/小文字を区別する文字列の最大サイズは128文字です。

現在のセッションのアプリケーション・ロールのリストを検索するには、V$XS_SESSION_ROLESデータ・ディクショナリ・ビューを問い合せます。すべてのアプリケーション・ロールを検索するには、DBA_XS_SESSION_ROLESデータ・ディクショナリ・ビューを次のように問い合せます。

SELECT ROLE_NAME FROM V$XS_SESSION_ROLES;

SELECT SESSIONID, ROLE FROM DBA_XS_SESSION_ROLES;

BEGIN
 SYS.DBMS_XS_SESSIONS.ENABLE_ROLE('auth2_role');
END;

DISABLE_ROLEプロシージャ

DISABLE_ROLEプロシージャは、指定されたアプリケーション・セッションから実際のアプリケーション・ロールを無効にします。現在連結されているアプリケーション・セッションでロールがすでに無効になっているか有効になっていない場合、DISABLE_ROLEはアクションを実行しません。動的アプリケーション・ロールは無効にできません。セッションを作成したアプリケーション・ユーザーに直接付与されている標準アプリケーション・ロールのみ無効にできます。

この操作では、コール元ユーザーにアプリケーション権限は不要です。

構文

DISABLE_ROLE (
 role   IN VARCHAR2);

パラメータ

パラメータ 説明

role

無効にするロールの名前。大/小文字を区別する文字列の最大サイズは128文字です。

現在のセッションのアプリケーション・ロールのリストを検索するには、V$XS_SESSION_ROLESデータ・ディクショナリ・ビューを問い合せます。すべてのアプリケーション・ロールを検索するには、DBA_XS_SESSION_ROLESデータ・ディクショナリ・ビューを次のように問い合せます。

SELECT ROLE_NAME FROM V$XS_SESSION_ROLES;

SELECT SESSIONID, ROLE FROM DBA_XS_SESSION_ROLES;

BEGIN
  SYS.DBMS_XS_SESSIONS.DISABLE_ROLE('auth1_role');
END;

SET_SESSION_COOKIEプロシージャ

SET_SESSION_COOKIEプロシージャは、指定されたセッションIDで新しいCookie値を設定します。指定されたセッションが存在しないかCookie名がすべてのユーザー・アプリケーション・セッション間で一意でない場合は、エラーがスローされます。

このプロシージャを実行するには、ユーザーにMODIFY_SESSIONアプリケーション権限が付与されている必要があります。

構文

SET_SESSION_COOKIE (
 cookie      IN VARCHAR2, 
 sessionid   IN RAW DEFAULT NULL);

パラメータ

パラメータ 説明

cookie

新規Cookieの名前。Cookieに対して許可される最大長は1024文字です。Cookie名は一意にする必要があります。

現在のセッションの既存のCookiesのリストを検索するには、XS_SYS_CONTEXT(XS$SESSION','COOKIE')を問い合せます。

sessionid

アプリケーション・セッションのセッションID。デフォルト値はNULLです。次のいずれかの方法を使用して、セッションIDを取得できます。

  • SELECT XS_SYS_CONTEXT('XS$SESSION', 'SESSION_ID') FROM DUAL;

  • DBMS_XS_SESSIONS.GET_ATTRIBUTEプロシージャの使用。

セッションIDを指定しないかNULLを入力した場合、SET_SESSION_COOKIEは現在のアプリケーション・セッションのセッションIDを使用します。

DECLARE
   sessionid RAW(16);
BEGIN
  SYS.DBMS_XS_SESSIONS.CREATE_SESSION('lwuser1', sessionid);
  SYS.DBMS_XS_SESSIONS.SET_SESSION_COOKIE('cookie1', sessionid);
END;

REAUTH_SESSIONプロシージャ

REAUTH_SESSIONプロシージャは、指定されたセッションIDの最終認証時刻を現在の時刻で更新します。アプリケーションは、アプリケーション・ユーザーを再認証したときにこのプロシージャをコールする必要があります。

REAUTH_SESSIONプロシージャを使用して、アプリケーションまたは中間層サーバーで最近認証されていないためタイムアウトになったロールを有効にします。reauthSession Javaメソッドをコールすることもできます。

このファンクションを実行するには、ユーザーにMODIFY_SESSIONアプリケーション権限が付与されている必要があります。

構文

REAUTH_SESSION (
 sessionid IN RAW DEFAULT NULL);

パラメータ

パラメータ 説明

sessionid

アプリケーション・セッションのセッションID。このパラメータはオプションです。デフォルト値はNULLです。次のいずれかの方法を使用して、セッションIDを取得できます。

  • SELECT XS_SYS_CONTEXT('XS$SESSION', 'SESSION_ID') FROM DUAL;

  • DBMS_XS_SESSIONS.GET_ATTRIBUTEプロシージャの使用。

セッションIDを指定しないかNULLを入力した場合、REAUTH_SESSIONは現在のアプリケーション・セッションのセッションIDを使用します。

DECLARE
  sessionid RAW(16);
BEGIN
 SYS.DBMS_XS_SESSIONS.REAUTH_SESSION(sessionid);
END;

SET_INACTIVITY_TIMEOUTプロシージャ

SET_INACTIVITY_TIMEOUTプロシージャは、現在連結されているセッションの非アクティブ・タイムアウト値を分単位で設定します。非アクティブ・タイムアウト値は、Oracleデータベースがアプリケーション・セッションを終了し、リソースが解放される前に許容される最大非アクティブ期間を表します。timeパラメータに負の値を設定しようとすると、エラーがスローされます。無効なセッションIDが指定されるかセッションが存在しない場合は、エラーがスローされます。

タイムアウト値を設定する別の方法は、setInactivityTimeout Javaメソッドを使用することです。xmlconfig.xml構成ファイルでデフォルトのグローバル・タイムアウト値を設定できます。240 (4時間)をお薦めします。

アプリケーション・セッションは、従来のセッションが連結されている間は非アクティブになるため、タイムアウトにできません。最終アクセス時刻は、従来のセッションがアプリケーション・セッションに連結するたびに更新されます。

このプロシージャを実行するには、コール元ユーザーにMODIFY_SESSIONアプリケーション権限が付与されている必要があります。

構文

SET_INACTIVITY_TIMEOUT (
 time        IN NUMBER, 
 sessionid   IN RAW DEFAULT NULL);

パラメータ

パラメータ 説明

time

分単位での非アクティブ・タイムアウト値。timeパラメータを240 (4時間)に設定することをお薦めします。ゼロ(0)値は、値が無限であり、セッションが非アクティブ状態によって失効しないことを意味します。

sessionid

アプリケーション・セッションのセッションID。デフォルト値はNULLです。次のいずれかの方法を使用して、セッションIDを取得できます。

  • SELECT XS_SYS_CONTEXT('XS$SESSION', 'SESSION_ID') FROM DUAL;

  • DBMS_XS_SESSIONS.GET_ATTRIBUTEプロシージャの使用。

セッションIDを指定しないかNULLを入力した場合、SET_INACTIVITY_TIMEOUTは現在のアプリケーション・セッションのセッションIDを使用します。

DECLARE
  sessionid RAW(16);
BEGIN
  SYS.DBMS_XS_SESSIONS.CREATE_SESSION('lwuser1', sessionid);
  SYS.DBMS_XS_SESSIONS.SET_INACTIVITY_TIMEOUT (300, sessionid);
END;
/

SAVE_SESSIONプロシージャ

SAVE_SESSIONプロシージャは、現在連結されているセッションで実行されたすべての変更を保存し、変更を保存する前のセッションに連結したままにします。

コール元ユーザーがこの操作を実行するために権限は必要ありません。

構文

SAVE_SESSION;

パラメータ

なし。

BEGIN
 SYS.DBMS_XS_SESSIONS.SAVE_SESSION;
END;

DETACH_SESSIONプロシージャ

DETACH_SESSIONプロシージャは、現在の従来型データベース・セッションを、連結先のアプリケーション・セッションから連結解除します。データベース・セッションは、アプリケーション・セッションに連結する前のコンテキストに戻ります。操作を実行するために権限は必要ないため、任意のユーザーがこのプロシージャを実行できます。

構文

DETACH_SESSION (abort IN BOOLEAN DEFAULT FALSE);

パラメータ

パラメータ 説明

abort

TRUEに指定した場合は、現在のセッションで実行された変更がロールバックされます。デフォルト値のFALSEに指定した場合は、セッションで実行されたすべての変更が永続化されます。このパラメータにNULL値が指定された場合は、FALSEとして扱われます。

BEGIN
 SYS.DBMS_XS_SESSIONS.DETACH_SESSION;
END;

DESTROY_SESSIONプロシージャ

DESTROY_SESSIONプロシージャは、指定されたセッションを破棄します。このプロシージャは、アプリケーション・セッションからすべての従来のセッションも暗黙的に連結解除します。セッションが破棄された後は、セッションに対してそれ以上連結を実行できません。この操作では、アプリケーション・ユーザーの直接ログオンを通じて作成されたセッションは破棄できません。

このプロシージャを実行するには、ユーザーにTERMINATE_SESSIONアプリケーション権限が必要です。

構文

DESTROY_SESSION (
 sessionid IN RAW,
 force     IN BOOLEAN DEFAULT FALSE);

パラメータ

パラメータ 説明

sessionid

アプリケーション・セッションのセッションID。次のいずれかの方法を使用して、セッションIDを取得できます。

  • SELECT XS_SYS_CONTEXT('XS$SESSION', 'SESSION_ID') FROM DUAL;

  • DBMS_XS_SESSIONS.GET_ATTRIBUTEプロシージャの使用。

セッションIDを指定しないかNULLを入力した場合、DESTROY_SESSIONは現在のアプリケーション・セッションのセッションIDを使用します。

force

FALSEに設定されている場合、指定されたセッションが現在連結されていると、この操作はエラーをスローします。TRUEに設定されている場合は、現在連結されているアプリケーション・セッションを破棄できます。これはオプションのパラメータです。

DECLARE
  sessionid RAW(16);
BEGIN
 SYS.DBMS_XS_SESSIONS.CREATE_SESSION('lwtSession1', sessionid);
 SYS.DBMS_XS_SESSIONS.DESTROY_SESSION (sessionid);
END;

ADD_GLOBAL_CALLBACKプロシージャ

ADD_GLOBAL_CALLBACKプロシージャは、既存のPL/SQLプロシージャをevent_typeパラメータで指定されたセッション操作にイベント・ハンドラとして登録します。関連付けられたイベントの発生時に実行するために同じセッション操作に対して複数のイベント・ハンドラを追加できます。グローバル・コールバック・プロシージャを追加すると、コールバック・プロシージャの実行が自動的に有効になります。同じセッション・イベントに対して複数のコールバックが追加されている場合、それらは登録順序に従って実行されます。つまり、最初に登録されたコールバック・プロシージャが最初に実行されます。このプロシージャは、無効なイベント・タイプが指定されている場合、またはコールバック・プロシージャが存在しない場合にエラーをスローします。

このプロシージャを正常に実行するには、CALLBACKアプリケーション権限が必要です。このロールは、PROVISIONERデータベース・ロールを通じて取得できます。

構文

ADD_GLOBAL_CALLBACK(
  event_type         IN PLS_INTEGER, 
  callback_schema    IN VARCHAR2, 
  callback_package   IN VARCHAR2,
  callback_procedure IN VARCHAR2);

パラメータ

パラメータ 説明

event_type

次のイベント・タイプから選択します。

  • CREATE_SESSION_EVENT

  • ATTACH_SESSION_EVENT

  • CREATE_NAMESPACE_EVENT

  • GUEST_TO_USER_EVENT

  • PROXY_TO_USER_EVENT

  • REVERT_TO_USER_EVENT

  • ENABLE_ROLE_EVENT

  • DISABLE_ROLE_EVENT

  • ENABLE_DYNAMIC_ROLE_EVENT

  • DISABLE_DYNAMIC_ROLE_EVENT

  • DETACH_SESSION_EVENT

  • TERMINATE_SESSION_EVENT

  • DIRECT_LOGIN_EVENT

callback_schema

コールバック・プロシージャが作成されたスキーマの名前を入力します。

callback_package

コールバック・プロシージャが作成されたパッケージの名前を入力します。コールバック・プロシージャがスタンドアロンの場合は、NULLcallback_packageパラメータとして渡す必要があります。このパラメータは、コールバック・プロシージャがパッケージ内にある場合にのみオプションです。

callback_procedure

グローバル・コールバックを定義するプロシージャの名前を入力します。

BEGIN
 SYS.DBMS_XS_SESSIONS.ADD_GLOBAL_CALLBACK (
  DBMS_XS_SESSIONS.CREATE_SESSION_EVENT, 
  'APPS1_SCHEMA','APPS2_PKG','CREATE_SESSION_CB');
END;

ENABLE_GLOBAL_CALLBACKプロシージャ

ENABLE_GLOBAL_CALLBACKプロシージャは、グローバル・コールバック・プロシージャの実行を有効または無効にします。このイベントに関連付けられているコールバック・プロシージャが指定されていない場合は、このグローバル・コールバックに関連付けられているすべてのコールバック・プロシージャが有効または無効になります。無効なイベント・タイプが指定されているか無効なコールバック・プロシージャが指定されている場合は、エラーがスローされます。

構文

ENABLE_GLOBAL_CALLBACK(
  event_type         IN PLS_INTEGER,
  enable             IN BOOLEAN  DEFAULT TRUE,
  callback_schema    IN VARCHAR2 DEFAULT NULL,
  callback_package   IN VARCHAR2 DEFAULT NULL,
  callback_procedure IN VARCHAR2 DEFAULT NULL);

パラメータ

パラメータ 説明

event_type

次のイベント・タイプから選択します。

  • CREATE_SESSION_EVENT

  • ATTACH_SESSION_EVENT

  • CREATE_NAMESPACE_EVENT

  • GUEST_TO_USER_EVENT

  • PROXY_TO_USER_EVENT

  • REVERT_TO_USER_EVENT

  • ENABLE_ROLE_EVENT

  • DISABLE_ROLE_EVENT

  • ENABLE_DYNAMIC_ROLE_EVENT

  • DISABLE_DYNAMIC_ROLE_EVENT

  • DETACH_SESSION_EVENT

  • TERMINATE_SESSION_EVENT

  • DIRECT_LOGIN_EVENT

enable

グローバル・コールバックを有効にするか無効にするかを指定します。デフォルト値はTRUEで、有効を意味します。

callback_schema

グローバル・コールバックが作成されたスキーマの名前を入力します。

callback_package

グローバル・コールバックが作成されたパッケージの名前を入力します。

callback_procedure

グローバル・コールバックを定義するプロシージャの名前を入力します。

BEGIN
 SYS.DBMS_XS_SESSIONS.ENABLE_GLOBAL_CALLBACK (
  DBMS_XS_SESSIONS.CREATE_SESSION_EVENT, 
  TRUE, 'APPS1_SCHEMA','APPS2_PKG','CREATE_SESSION_CB');
END;

DELETE_GLOBAL_CALLBACKプロシージャ

DELETE_GLOBAL_CALLBACKプロシージャは、グローバル・コールバックを登録から削除します。(グローバル・コールバック自体は削除しません。)コールバック・プロシージャが指定されていない場合は、このグローバル・コールバックに関連付けられているすべてのコールバック・プロシージャが削除されます。無効なイベント・タイプが指定されている場合は、エラーがスローされます。

構文

DELETE_GLOBAL_CALLBACK(
  event_type         IN PLS_INTEGER,
  callback_schema    IN VARCHAR2 DEFAULT NULL, 
  callback_package   IN VARCHAR2 DEFAULT NULL,
  callback_procedure IN VARCHAR2 DEFAULT NULL);

パラメータ

パラメータ 説明

event_type

次のイベント・タイプから選択します。

  • CREATE_SESSION_EVENT

  • ATTACH_SESSION_EVENT

  • CREATE_NAMESPACE_EVENT

  • GUEST_TO_USER_EVENT

  • PROXY_TO_USER_EVENT

  • REVERT_TO_USER_EVENT

  • ENABLE_ROLE_EVENT

  • DISABLE_ROLE_EVENT

  • ENABLE_DYNAMIC_ROLE_EVENT

  • DISABLE_DYNAMIC_ROLE_EVENT

  • DETACH_SESSION_EVENT

  • TERMINATE_SESSION_EVENT

  • DIRECT_LOGIN_EVENT

callback_schema

グローバル・コールバックが作成されたスキーマの名前を入力します。

callback_package

グローバル・コールバックが作成されたパッケージの名前を入力します。

callback_procedure

グローバル・コールバックを定義するプロシージャの名前を入力します。

BEGIN
 SYS.DBMS_XS_SESSIONS.DELETE_GLOBAL_CALLBACK (
  DBMS_XS_SESSIONS.CREATE_SESSION_EVENT, 
  'APPS1_SCHEMA','APPS2_PKG','CREATE_SESSION_CB');
END;