エラーが発生する前に、エラー条件の処理を宣言する必要があります。
Whenever sqlerror exit sql.sqlcode;
DROP user MYUSER cascade;
EXIT 0;
スクリプトのさまざまな時点で処理を変更できます。たとえば、ドロップのエラーを無視して、作成前に保護ドロップを実行できますが、次のステップが失敗した場合は停止します:
whenever sqlerror continue
drop ...
whenever sqlerror exit failure
create...
alter...
etc
ちなみに、Unixランドでは、ほとんどの(すべて?)シェルのリターンコードが制限されており、数値が大きくなるため、このアプローチは制限されます。したがって、ORA-0918は126として報告され、解釈できなくなります。さらに重要なことに、一部の値はゼロにラップされ、エラーが発生していないように見えます。幸い、%errorlevel%でその問題は発生していません。