30 APEX_SESSION

Application Expressのセッションを構成できるパッケージ。

CREATE_SESSIONプロシージャ

このプロシージャは、指定されたアプリケーション用に新しいセッションを作成し、環境を設定し、アプリケーションの初期化PL/SQLコードを実行します。

構文

procedure create_session (
   p_app_id in number,
   p_page_id in number,
   p_username in varchar2 );

パラメータ

表30-1 CREATE_SESSIONプロシージャのパラメータ

パラメータ 説明

p_app_id

アプリケーションID。

p_page_id

アプリケーションのページ。

p_username

セッション・ユーザー。

Raises

WWV_FLOW.APP_NOT_FOUND_ERR: アプリケーションが存在しないか、またはコール元にはワークスペースへのアクセス権がありません。

この例では、アプリケーション100ページ1でEXAMPLE USERのセッションを作成してから、アプリケーションIDおよびセッションIDを出力します。

begin
    apex_session.create_session (
    p_app_id   => 100,
    p_page_id  => 1,
    p_username => 'EXAMPLE USER' );
    sys.dbms_output.put_line (
   'App is '||v('APP_ID)||', session is '||v('APP_SESSION'));
 end;

DELETE_SESSIONプロシージャ

このプロシージャは、指定されたIDのセッションを削除します。セッションが現在アタッチされている場合、アプリケーションのクリーン・アップPL/SQLコードをコールして、環境をリセットします。指定されたセッションが存在しない場合や、コール元がセッションのワークスペースにアクセスできない場合、このプロシージャは何も行いません。

構文

procedure delete_session (
    p_session_id in number default wwv_flow.g_instance );

パラメータ

表30-2 DELETE SESSIONプロシージャのパラメータ

パラメータ 説明

p_session_id

セッションID。

Raises

  • APEX.SESSION.EXPIRED: セッションは存在しません。

  • SECURITY_GROUP_ID_INVALID: 現在のワークスペースがセッション・ワークスペースと一致しません。

セッションの削除 12345678

begin
    apex_session.delete_session (
    p_session_id => 12345678 );
 end;

ATTACHプロシージャ

このプロシージャは、指定されたアプリケーションおよび現在のセッションに基づいて、環境を設定し、初期化PL/SQLコードを実行します。

構文

procedure attach (
    p_app_id     in number,
    p_page_id    in number,
    p_session_id in number );

パラメータ

表30-3 ATTACHプロシージャのパラメータ

パラメータ 説明

p_app_id

アプリケーションID。

p_page_id

アプリケーションのページ。

p_session_id

セッションID。

Raises

  • WWV_FLOW.APP_NOT_FOUND_ERR: アプリケーションが存在しないか、またはコール元にはワークスペースへのアクセス権がありません。

  • APEX.SESSION.EXPIRED: セッションは存在しません。

  • SECURITY_GROUP_ID_INVALID: 現在のワークスペースがセッション・ワークスペースと一致しません。

アプリケーション100ページ1のセッション12345678にアタッチし、アプリケーションIDおよびセッションIDを出力します。

begin
    apex_session.attach (
        p_app_id     => 100,
        p_page_id    => 1,
        p_session_id => 12345678 );
    sys.dbms_output.put_line (
        'App is '||v('APP_ID)||', session is '||v('APP_SESSION'));
end;

DETACHプロシージャ

このプロシージャは、現在のセッションからデタッチし、環境をリセットし、アプリケーションのクリーン・アップPL/SQLコードを実行します。セッションがアタッチされていない場合、このプロシージャは何も行いません。

構文

procedure detach;

現在のセッションからデタッチします。

begin
    apex_session.detach;
end;