sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo paso un código de retorno de un script de Oracle al script de WINDOWS Batch que lo llamó?

Debe declarar el manejo de la condición de error antes de que ocurra el error:

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

Puede cambiar el manejo en diferentes puntos del script. Por ejemplo, podría hacer una caída de protección antes de crear, ignorando un error en la caída, pero deteniéndose si el siguiente paso falla:

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

Por cierto, en Unix-land, este enfoque es limitado porque la mayoría (¿todos?) Los shells tienen un código de retorno limitado y los números más altos se ajustan; por lo que ORA-0918 se informaría como 126, por lo que sería imposible de interpretar. Más importante aún, algunos valores se ajustarán a cero, haciendo que parezca que no se produjo ningún error. Afortunadamente, no tienes ese problema con %errorlevel%.