Трябва да декларирате обработката на условието за грешка, преди да възникне грешката:
Whenever sqlerror exit sql.sqlcode;
DROP user MYUSER cascade;
EXIT 0;
Можете да промените обработката в различна точка от скрипта. Например можете да направите защитно пускане преди създаване, като игнорирате грешка при пускането, но все пак спрете, ако следващата стъпка е неуспешна:
whenever sqlerror continue
drop ...
whenever sqlerror exit failure
create...
alter...
etc
Между другото, в Unix-land този подход е ограничен, защото повечето (всички?) обвивки имат ограничен код за връщане и по-високи числа се обвиват; така че ORA-0918 ще бъде докладван като 126, което прави невъзможно тълкуването. По-важното е, че някои стойности ще се завъртят до нула, което прави да изглежда, че не е възникнала грешка. За щастие нямате този проблем с %errorlevel%.