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などのサーバー・リソースを解放するうえで重要です。