27.1 APEX_EXECのコール順序

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

参照:

APEX_SESSION

27.1.1 APEX_EXECを使用したデータ・ソースの問合せ

  1. データ・ソースから選択される列を準備します。
    1. APEX_EXEC.T_COLUMNS型の変数を作成します。
    2. APEX_EXEC.ADD_COLUMNSを使用して列を追加します。
  2. (オプション)バインド変数を準備します。
    1. APEX_EXEC.T_PARAMETERS型の変数を作成します
    2. APEX_EXEC.ADD_PARAMETERを使用してバインド値を追加します。
  3. (オプション)フィルタを準備します。
    1. APEX_EXEC.T_FILTERS型の変数を作成します。
    2. APEX_EXEC.ADD_FILTERを使用してバインド値を追加します。
  4. 次のいずれかの方法で、データ・ソース問合せを実行します。
    • RESTデータ・ソースの場合は、APEX_EXEC.OPEN_REST_SOURCE_QUERYを使用します。
    • REST対応のSQLの場合は、APEX_EXEC.OPEN_REMOTE_SQL_QUERYを使用します。
    • あるいは、APEX_EXEC.OPEN_QUERY_CONTEXTを使用して場所をパラメータとして渡します。
  5. 結果セット・メタデータを取得します。
    1. APEX_EXEC.GET_COLUMN_COUNTは、結果列の数を戻します。
    2. APEX_EXEC.GET_COLUMNは、特定の列に関する情報を戻します。
  6. 結果セットを処理する:
    1. APEX_EXEC.NEXT_ROWは、結果カーソルを1行進めます。
    2. APEX_EXEC.GET_NNNNファンクションは、個々の列値を取得します。
  7. APEX_EXEC.CLOSEを使用してすべてのリソースを閉じます。
  8. 例外ハンドラを追加し、それらのリソースを閉じます。たとえば:
    EXCEPTION
        WHEN others THEN
             apex_debug.log_exception;
             apex_exec.close( l_context );
        RAISE;

参照:

データ・ソースに対する完全な問合せのコード例は、次のAPIの例に関する項を確認してください。

27.1.2 APEX_EXECを使用したデータ・ソースでのDMLの実行

  1. データ操作言語(DML)列を定義します。
    1. APEX_EXEC.T_COLUMNS型の変数を作成します。
    2. APEX_EXEC.ADD_COLUMNSを使用して列を追加します。
  2. (オプション)バインド変数を準備します。
    1. APEX_EXEC.T_PARAMETERS型の変数を作成します。
    2. APEX_EXEC.ADD_PARAMETERを使用してバインド値を追加します。
  3. 次のいずれかの方法で、DMLコンテキストを準備します。
    • RESTデータ・ソースの場合は、OPEN_REST_SOURCE_DML_CONTEXTを使用します。
    • REST対応のSQLの場合は、OPEN_REMOTE_DML_CONTEXTを使用します。
    • ローカル・データベースの場合は、OPEN_LOCAL_DML_CONTEXTを使用します。
  4. 実行するDMLの行値を追加します。
    1. APEX_EXEC.ADD_DML_ROWを使用して、新しい行を追加します。
    2. APEX_EXEC.SET_VALUEを使用して、個々の列値を指定します。
  5. APEX_EXEC.EXECUTE_DMLを使用してDMLを実行します。
  6. APEX_EXEC.CLOSEを使用してすべてのリソースを閉じます。
  7. 例外ハンドラを追加し、それらのリソースを閉じます。たとえば:
    EXCEPTION 
        WHEN others THEN
            apex_exec.close( l_context );
            RAISE;

参照:

完全なDML問合せのコード例は、次のAPIの例に関する項を確認してください。

27.1.3 APEX_EXECを使用したリモート・プロシージャまたはREST APIの実行

  1. (オプション)バインド変数を準備します。
    1. APEX_EXEC.T_PARAMETERS型の変数を作成します
    2. APEX_EXEC.ADD_PARAMETERを使用してバインド値を追加します。
  2. 次のいずれかの方法で、ローカル・プロシージャ、リモート・プロシージャまたはREST APIを実行します。
    • RESTデータ・ソースの場合は、APEX_EXEC.EXECUTE_REST_SOURCEを使用します。
    • REST対応のSQLの場合は、APEX_EXEC.EXECUTE_REMOTE_PLSQLを使用します。
    • ローカル・データベースの場合は、APEX_EXEC.EXECUTE_PLSQLを使用します。
    バインド変数を渡すために使用されるP_PARAMETERS配列はIN OUTパラメータであるため、OUTパラメータが戻されます。
  3. (オプション) OUTパラメータを取得します。APEX_EXEC.T_PARAMETERS型の変数をウォークスルーし、GET_PARAMETER_VALUEを使用してOUTパラメータ値を取得します。

参照:

完全なリモート・プロシージャまたはREST API問合せのコード例は、次のAPIの例に関する項を確認してください。