Если в ходе выполнения командного файла происходит ошибка Oracle, может потребоваться вернуть соответствующий код возврата базовой операционной системе. Это позволяет сделать команда WHENEVER SQLERROR со следующим синтаксисом:
<команда WHENEVER SQLERROR> ::=
WHENEVER SQLERROR <реакция на ошибку>
<реакция на ошибку> ::=
<выход>
| COMMIT
| ROLLBACK
| CONTINUE <действие перед продолжением>
<выход> ::=
EXIT [<код возврата>][<завершение транзакции>]
<код возврата> ::=
SUCCESS | FAILURE | WARNING
| <целое число> | <переменная> | :<связываемая переменная>
<завершение транзакции> ::=
COMMIT | ROLLBACK
<действие перед продолжением> ::=
COMMIT | ROLLBACK | NONE
В ответ на ошибку в сценарии можно, тем самым, выйти из SQL*Plus и вернуть необходимый код возврата операционной системе, зафиксировать или откатить выполненные изменения, либо проигнорировать ошибку и продолжить выполнение сценария (с фиксацией или откатом изменений при необходимости).