プライマリ・コンテンツに移動
Oracle® Database Oracleプリコンパイラのためのプログラマーズ・ガイド
12c リリース1 (12.1)
B71398-03
目次へ移動
目次
索引へ移動
索引

前
次

DECLARE STATEMENT文の使用について

方法2、3および4では、次の文を使用することが必要な場合があります。

EXEC SQL [AT db_name] DECLARE statement_name STATEMENT;

db_nameおよびstatement_nameは、プリコンパイラで使用される識別子で、ホスト変数でもプログラム変数でもありません

DECLARE STATEMENTは、PREPAREEXECUTEDECLARE CURSORおよびDESCRIBEが文を参照できるように、動的SQL文の名前を宣言します。デフォルト以外のデータベースで動的SQL文を実行する場合は必須です。方法2を使用する例を次に示します。

EXEC SQL AT remote_db DECLARE sql_stmt STATEMENT;
EXEC SQL PREPARE sql_stmt FROM :sql_string;
EXEC SQL EXECUTE sql_stmt;

この例では、remote_dbによって、SQL文をどこでEXECUTEするかをOracleに指示します。

方法3および方法4では、次の例に示すように、DECLARE CURSOR文がPREPARE文の前にある場合にもDECLARE STATEMENTが必要です。

EXEC SQL DECLARE sql_stmt STATEMENT;
EXEC SQL DECLARE emp_cursor CURSOR FOR sql_stmt;
EXEC SQL PREPARE sql_stmt FROM :sql_string;

一般的な文の順序は次のとおりです。

EXEC SQL PREPARE sql_stmt FROM :sql_string;
EXEC SQL DECLARE emp_cursor CURSOR FOR sql_stmt;

ホスト配列の使用方法

ホスト配列の使用方法は、静的SQLでも動的SQLでも同様です。たとえば、動的SQL方法2で入力ホスト配列を使用するには、次の構文を使用します。

EXEC SQL EXECUTE statement_name USING host_array_list;

host_array_listには1つ以上のホスト配列が含まれます。方法3の場合は、次の構文を使用します。

OPEN cursor_name USING host_array_list;

方法3で出力ホスト配列を使用するには、次の構文を使用します。

FETCH cursor_name INTO host_array_list;

方法4では、オプションのFOR句を使用して、入力ホスト配列または出力ホスト配列のサイズをOracleに指示する必要があります。この方法は、ホスト言語の補足資料を参照してください。