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

前
次

WHENEVER (埋込みSQLディレクティブ)

WHENEVERの用途

埋込みSQLプログラムの実行時に、エラーまたは警告が発生した場合の処置を指定します。

WHENEVERの前提条件

なし。

WHENEVERの構文

次の構文図は、WHENEVER文の作成方法を示しています。

WHENEVERのキーワードおよびパラメータ

NOT FOUND

エラー・コード+1403(または、MODE=ANSIのときは+100コード)をSQLCODEに戻す例外状態を示します。

SQLERROR

負のリターン・コードを戻す状態を示します。

SQLWARNING

致命的でない警告状態を示します。

CONTINUE

プログラムが次の文に進む必要があることを示します。

GOTO

プログラムがlabelで指定した名前の文に分岐するように指示します。

STOP

プログラムの実行を停止します。

DO

プログラムがホスト言語ルーチンをコールするように指示します。routineの構文はホスト言語によって異なります。使用する言語固有のOracleプリコンパイラ・ガイドの補足資料を参照してください。

WHENEVERの使用上の注意

WHENEVERコマンドを使用すると、埋込みSQL文でエラーまたは警告が発生したときに、プログラムからエラー処理のルーチンに制御を移すことができます。

WHENEVER文の有効範囲は、論理的なものではなく、位置的なものです。WHENEVER文は、プログラム論理の流れではなく、ソース・ファイル内で物理的に後に続くすべての埋込みSQL文に適用されます。WHENEVER文は、同じ条件をチェックする別のWHENEVER文に置換されるまで有効です。

このコマンドの詳細は、トランザクションの定義および制御を参照してください。WHENEVER埋込みSQLコマンドとWHENEVER SQL*Plusコマンドを混同しないでください。

WHENEVERの例

次の例では、Pro*C/C++埋込みSQLプログラムでのWHENEVERコマンドの使用方法を示しています。

EXEC SQL WHENEVER NOT FOUND CONTINUE;
... 
EXEC SQL WHENEVER SQLERROR GOTO sql_error: 
... 
sql_error: 
 EXEC SQL WHENEVER SQLERROR CONTINUE; 
 EXEC SQL ROLLBACK RELEASE;

WHENEVERの関連トピック

なし。