Anda perlu mendeklarasikan penanganan kondisi kesalahan sebelum kesalahan terjadi:
Whenever sqlerror exit sql.sqlcode;
DROP user MYUSER cascade;
EXIT 0;
Anda dapat mengubah penanganan pada titik yang berbeda dalam skrip. Misalnya Anda bisa melakukan protektif drop sebelum membuat, dengan mengabaikan kesalahan pada drop, tapi tetap berhenti jika langkah berikutnya gagal:
whenever sqlerror continue
drop ...
whenever sqlerror exit failure
create...
alter...
etc
Kebetulan, di Unix-land pendekatan ini terbatas karena sebagian besar (semua?) shell memiliki kode pengembalian terbatas, dan angka yang lebih tinggi membungkus; jadi ORA-0918 akan dilaporkan sebagai 126, sehingga tidak mungkin untuk ditafsirkan. Lebih penting lagi, beberapa nilai akan membungkus ke nol, membuatnya terlihat seperti tidak ada kesalahan yang terjadi. Untungnya, Anda tidak memiliki masalah dengan %errorlevel%.