SQL*Plus > WHENEVER OSERROR

オペレーティング・システムレベルのエラーハンドル

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] のステータスコードについて を参照

関連事項

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ 会員制(無料)の公式技術サイト