U moet de afhandeling van de foutconditie declareren voordat de fout optreedt:
Whenever sqlerror exit sql.sqlcode;
DROP user MYUSER cascade;
EXIT 0;
U kunt de afhandeling op verschillende punten in het script wijzigen. U kunt bijvoorbeeld een beschermende druppel doen voordat u deze maakt, door een fout op de druppel te negeren, maar toch te stoppen als de volgende stap mislukt:
whenever sqlerror continue
drop ...
whenever sqlerror exit failure
create...
alter...
etc
Overigens is deze benadering in Unix-land beperkt omdat de meeste (alle?) shells een beperkte retourcode hebben, en hogere aantallen rondlopen; dus ORA-0918 zou worden gerapporteerd als 126, waardoor het onmogelijk te interpreteren is. Wat nog belangrijker is, is dat sommige waarden teruglopen naar nul, waardoor het lijkt alsof er geen fout is opgetreden. Gelukkig heb je dat probleem niet met %errorlevel%.