APEX_EXECパッケージは、データ処理とデータ問合せの機能をカプセル化し、データ・ソースからApplication Expressのコンポーネントおよびプラグインに抽象化を提供します。これには、ローカル・データ・ソース、リモート・データ・ソースおよびWebソース・モジュールに対して問合せまたはプロシージャ・コールを実行するためのプロシージャおよびファンクションが含まれています。これは、アプリケーションやパッケージ内やプロシージャ内で、プラグインの開発にも手続き型のPL/SQL処理にも使用できます。
プロシージャはいずれも、設定するのにAPEXセッションが必要です。Pure SQLまたはPL/SQLコンテキストでは、APEX_SESSIONパッケージを使用して、新しいセッションを初期化します。
一般的なコール・シーケンスは、使用されるデータ・ソースによって異なります。
REST対応のSQLデータ・ソース
[オプション]でバインド変数を準備します
APEX_EXEC.T_PARAMETERS型の変数を作成します
APEX_EXEC.ADD_PARAMETERとのバインド値を追加します
リモート問合せコールを実行します
APEX_EXEC.OPEN_REMOTE_SQL_QUERYをコールします
結果列名の列索引を取得します
APEX_EXEC.OPEN_WEB_SOURCE_QUERYをコールします
結果セットが使い果たされるまでループします
APEX_EXEC.NEXT_ROWをコールします
位置により各列の列値を取得します
APEX_EXEC.GET_VARCHAR2、APEX_EXEC.GET_NUMBER、APEX_EXEC.GET_DATE、...をコールします
最後に必ず問合せコンテキストを閉じます - 重要
APEX_EXEC.CLOSEをコールします
Webソース・モジュール
[オプション]でWebソース・パラメータ変数を準備します
APEX_EXEC.T_PARAMETERS型の変数を作成します
APEX_EXEC.ADD_PARAMETERとのバインド値を追加します
Webソースに渡すフィルタを準備します(Webソースでサポートされている場合)
APEX_EXEC.T_FILTERS型の変数を作成します
APEX_EXEC.ADD_FILTERとのバインド値を追加します
Webソースに渡すORDER BY式を準備します(Webソースでサポートされている場合)
APEX_EXEC.T_ORDER_BYS型の変数を作成します
APEX_EXEC.ADD_ORDER_BYとのバインド値を追加します
リモート問合せコールを実行します
APEX_EXEC.OPEN_WEB_SOURCE_QUERYをコールします
事前に準備したフィルタ、ORDER BYおよびパラメータを渡します
結果列名の列索引を取得します
APEX_EXEC.GET_COLUMN_POSITIONをコールします
結果セットが使い果たされるまでループします
APEX_EXEC.NEXT_ROWをコールします
位置により各列の列値を取得します
APEX_EXEC.GET_VARCHAR2、APEX_EXEC.GET_NUMBER、APEX_EXEC.GET_DATE、...をコールします
最後に必ず問合せコンテキストを閉じます - 重要
APEX_EXEC.CLOSEをコールします
注意:
いつでもAPEX_EXEC.CLOSEをコールできるように、必ずプロシージャまたはファンクションに例外ハンドラを追加してください。これは、データベース・カーソルや一時LOBなどのサーバー・リソースを解放するうえで重要です。