18 APEX_EXEC

APEX_EXECパッケージは、データ処理とデータ問合せの機能をカプセル化し、データ・ソースからApplication Expressのコンポーネントおよびプラグインに抽象化を提供します。APEX_EXECには、ローカルおよびリモートのデータ・ソースおよびRESTデータ・ソースで問合せまたは手続き型コールを実行するプロシージャとファンクションが含まれています。これは、アプリケーション内またはパッケージおよびプロシージャ内でのプラグイン開発および手続き型PL/SQL処理に使用できます。

すべてのAPEX_EXECプロシージャが機能するには、既存のApplication Expressセッションが必要です。Pure SQLまたはPL/SQLコンテキストでは、APEX_SESSIONパッケージを使用して、新しいセッションを初期化します。

一般的なコール・シーケンスは、使用されるデータ・ソースによって異なります。

  1. REST対応のSQLデータ・ソース

    1. [オプション]でバインド変数を準備します

      • APEX_EXEC.T_PARAMETERS型の変数を作成します

      • APEX_EXEC.ADD_PARAMETERとのバインド値を追加します

    2. リモート問合せコールを実行します

      • APEX_EXEC.OPEN_REMOTE_SQL_QUERYをコールします

    3. 結果列名の列索引を取得します

      • APEX_EXEC.OPEN_WEB_SOURCE_QUERYをコールします

    4. 結果セットが使い果たされるまでループします

      • APEX_EXEC.NEXT_ROWをコールします

    5. 位置により各列の列値を取得します

      • APEX_EXEC.GET_VARCHAR2APEX_EXEC.GET_NUMBERAPEX_EXEC.GET_DATE、...をコールします

    6. 最後に必ず問合せコンテキストを閉じます - 重要

      • APEX_EXEC.CLOSEをコールします

  2. RESTデータソース

    1. [オプション]でRESTデータ・ソース・パラメータ変数を準備します

      • APEX_EXEC.T_PARAMETERS型の変数を作成します

      • APEX_EXEC.ADD_PARAMETERとのバインド値を追加します

    2. RESTデータ・ソースに渡されるフィルタを準備します(データ・ソースでサポートされている場合)

      • APEX_EXEC.T_FILTERS型の変数を作成します

      • APEX_EXEC.ADD_FILTERとのバインド値を追加します

    3. RESTデータ・ソースに渡されるORDER BY式を準備します(データ・ソースでサポートされている場合)

      • APEX_EXEC.T_ORDER_BYS型の変数を作成します

      • APEX_EXEC.ADD_ORDER_BYとのバインド値を追加します

    4. リモート問合せコールを実行します

      • APEX_EXEC.OPEN_WEB_SOURCE_QUERYをコールします

      • 事前に準備したフィルタ、ORDER BYおよびパラメータを渡します

    5. 結果列名の列索引を取得します

      • APEX_EXEC.GET_COLUMN_POSITIONをコールします

    6. 結果セットが使い果たされるまでループします

      • APEX_EXEC.NEXT_ROWをコールします

    7. 位置により各列の列値を取得します

      • APEX_EXEC.GET_VARCHAR2APEX_EXEC.GET_NUMBERAPEX_EXEC.GET_DATE、...をコールします

    8. 最後に必ず問合せコンテキストを閉じます - 重要

      • APEX_EXEC.CLOSEをコールします

ノート:

常にプロシージャまたはファンクションに例外ハンドラを追加し、データベース・カーソルや一時LOBなどのサーバー・リソースを解放するためにAPEX_EXEC.CLOSEが常にコールされるようにしてください。