12.52 WHENEVER OSERROR

構文

WHENEVER OSERROR {EXIT [SUCCESS | FAILURE | n | variable | :BindVariable]  [COMMIT | ROLLBACK] | CONTINUE [COMMIT | ROLLBACK | NONE]}

オペレーティング・システムのエラー(ファイル書込みエラーなど)が発生した場合に、指定した操作(デフォルトはSQL*Plusを終了)を実行します。

 [SUCCESS | FAILURE | n | variable | :BindVariable]

オペレーティング・システムのエラーが検出されたら、すぐに指定した処理を実行するように、SQL*Plusに指示します。成功または失敗を示すコード、オペレーティング・システム障害コード、またはユーザー指定の数値や変数をSQL*Plusが戻すように指定することもできます。

EXIT [SUCCESS | FAILURE | n | variable | :BindVariable]

オペレーティング・システムのエラーが検出されたらすぐに終了するように、SQL*Plusに指示します。成功または失敗を示すコード、オペレーティング・システム障害コード、またはユーザー指定の数値や変数をSQL*Plusが戻すように指定することもできます。詳細は、「EXIT」を参照してください。

CONTINUE

EXITオプションをオフにします。

COMMIT

終了または継続する前にCOMMITを実行し、データベースに対する保留中の変更を保存するようにSQL*Plusに指示します。

ROLLBACK

終了または継続する前にROLLBACKを実行し、データベースに対する保留中の変更を破棄するようにSQL*Plusに指示します。

NONE

継続する前に何の操作もしないようにSQL*Plusに指示します。

使用方法

WHENEVER OSERRORコマンドを入力しない場合、SQL*Plusのデフォルト動作では、オペレーティング・システムのエラーが発生すると、何も処置せずに処理が続行されます。

WHENEVER SQLERRORコマンドを入力しない場合、SQL*Plusのデフォルト動作では、SQLエラーが発生すると、何も処置せずに処理が続行されます。

出力ファイルからの読取り時に障害が発生した場合、次のスクリプト内のコマンドは、SQL*Plusを終了し、保留中の変更があればすべてコミットします。

WHENEVER OSERROR EXIT
START no_such_file
OS Message: No such file or directory
Disconnected from Oracle......