構文
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
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...... |