プライマリ・コンテンツに移動
Pro*C/C++プログラマーズ・ガイド
12c リリース1(12.1)
B71397-03
目次へ移動
目次
索引へ移動
索引

前
次

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

用途

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

前提条件

なし。

構文

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

キーワードおよびパラメータ 説明

NOT FOUND

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

SQLERROR

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

SQLWARNING

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

CONTINUE

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

GOTO label

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

STOP

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

DO routine

プログラムがroutineという名前のファンクションをコールすることを示します。

DO BREAK

条件が満たされると、ループからbreak文が実行されます。

DO CONTINUE

条件が満たされると、ループからcontinue文が実行されます。

使用上の注意

WHENEVERディレクティブを使用すると、プログラムからエラー処理のルーチンに制御を移すことができます。これは埋込みSQ

L文でエラーまたは警告が発生したときに可能です。

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

このディレクティブの詳細は、WHENEVERディレクティブの使用についてを参照してください。

埋込みSQLのWHENEVERディレクティブとSQL*PlusコマンドのWHENEVERディレクティブを混同しないでください。

次の2つの例では、埋込みSQLプログラムにおけるWHENEVERディレクティブの使用方法を示しています。

例1:

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

例2:

EXEC SQL WHENEVER SQLERROR GOTO connect_error; 
... 
connect_error: 
    EXEC SQL WHENEVER SQLERROR CONTINUE; 
    EXEC SQL ROLLBACK RELEASE; 
    printf("\nInvalid username/password\n"); 
    exit(1); 

関連項目

なし。