ORACLE MASTER Bronze DBA 26aiSQL管理ツールの出力と停止条件オリジナル・公式資料照合難易度★★★☆☆
SQL*Plusのバッチ先頭にWHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACKを指定した。自動COMMITはOFFで、正常なUPDATEの後にデータベースがSQLエラーを返した。途中のCOMMIT・DDLはない。意図される動作はどれか。
A
先行UPDATEをCOMMITして、後続の全SQLを続行する
指定はEXITとROLLBACKであり、COMMITやCONTINUEではない。
B
エラーになったSQLだけ取り消し、後続の全SQLを続行する
文単位の取り消しに加えて、指定された終了とトランザクションのROLLBACKが行われる。
C
未COMMITの変更をROLLBACKして終了する★ 正解
明示したROLLBACKが先行UPDATEを含む未確定変更を取り消し、EXITで処理を止める。
D
すべてのSQL*Plusコマンドの誤記も必ず同じように捕捉する
WHENEVER SQLERRORはSQLやPL/SQLのエラーが対象で、SQL*Plusコマンド自体のエラーは対象外である。
解説
データベースのSQLエラーまたはPL/SQLブロックのエラーを受けると、指定したROLLBACKを行いSQL*Plusを終了する。先行UPDATEも未COMMITなら取り消される。ただしSQL*Plus自体のコマンドエラーまで同じ命令が捕捉するわけではない。
根拠資料・確認情報
対応範囲:Bronze DBA Oracle AI Database 26ai Fundamentals(1Z0-185-JPN)
資料確認日:2026-10-30