オペレーティング・システムレベルのエラーハンドル
WHENEVER OSERROR はコマンドの実行前に OS レベルのエラーが発生した場合の処理を事前に定義しておくためのコマンド
例えば @@filename コマンドで指定したスクリプトファイルが存在しない場合に発生する。
WHENEVER OSERROR コマンド
WHENEVER OSERROR コマンドの構文
EXIT(終了)する場合
WHENEVER OSERROR
EXIT [ SUCCESS | FAILURE | 戻り値(※1)] [ COMMIT | ROLLBACK ]
CONTINUE(継続)する場合
WHENEVER OSERROR
CONTINUE [ COMMIT | ROLLBACK | NONE ]
(※1) 戻り値には 定数、DEFINE による変数、VARIBLE による変数のいずれも使用できる。
WHENEVER OSERROR EXIT
EXIT(終了)する場合には SQL*Plus の終了ステータスの指定と トランザクション を コミット するか ロールバック するかを指定する。
EXIT のオプションパラメータを省略した場合には SUCCESS と COMMIT がデフォルトになる。
WHENEVER OSERROR EXIT SUCCESS COMMIT
OS エラー時に SQL*Plus の終了コードに MY_ERROR_CODE(=200) を設定してロールバックするスクリプト例
--- スクリプト開始
-- OS エラーが発生した場合は MY_ERROR_CODE=200 を戻す宣言
DEFINE MY_ERROR_CODE 200
--
WHENEVER OSERROR EXIT MY_ERROR_CODE ROLLBACK
... スクリプト処理の開始
WHENEVER OSERROR CONTINUE
CONTINUE(継続)する場合には現行トランザクションをどのようにするかを指定する。省略時のデフォルトは NONE(なにもしないで継続する)
WHENEVER OSERROR CONTINUE NONE
EXIT のステータスコードについて
⇒ [EXIT、QUIT] のステータスコードについて を参照
関連事項