sql >> Databáze >  >> RDS >> Oracle

Jak předám návratový kód ze skriptu Oracle zpět do dávkového skriptu WINDOWS, který jej vyvolal?

Než dojde k chybě, musíte deklarovat zpracování chybových podmínek:

Whenever sqlerror exit sql.sqlcode; 
DROP user MYUSER cascade;
EXIT 0;

Zpracování můžete změnit na jiném místě skriptu. Před vytvořením můžete například provést ochranné upuštění tak, že budete ignorovat chybu v upuštění, ale přesto se zastavíte, pokud další krok selže:

whenever sqlerror continue
drop ...
whenever sqlerror exit failure
create...
alter...
etc

Mimochodem, v Unixu je tento přístup omezený, protože většina (všech?) shellů má omezený návratový kód a vyšší čísla se obtáčí; takže ORA-0918 by bylo hlášeno jako 126, což znemožnilo interpretaci. Ještě důležitější je, že některé hodnoty se zalomí na nulu, takže to bude vypadat, že nedošlo k žádné chybě. Tento problém s %errorlevel% naštěstí nemáte.




  1. Dynamické provádění dotazů v PL/pgSQL

  2. Jak získat další číslo v pořadí

  3. CHAR() nebo VARCHAR() jako primární klíč v tabulce ISAM MySQL?

  4. Získání zadaného argumentu není platným zdrojem výsledků MySQL při volání mysql_fetch_array()