Saltar al contenido

Sql*plus siempre devuelve el código de salida 0?

Esta sección fue probado por expertos así aseguramos la exactitud de nuestra esta crónica.

Solución:

Tienes que decir explícitamente sqlplus para hacer eso, en su script. Básicamente, hay dos declaraciones que puede usar:

  • WHENEVER SQLERROR EXIT SQL.SQLCODE
  • WHENEVER OSERROR EXIT

Por ejemplo:

WHENEVER SQLERROR EXIT SQL.SQLCODE
begin
  SELECT COLUMN_DOES_NOT_EXIST FROM DUAL;
END;
/

Y para errores del sistema operativo:

WHENEVER OSERROR EXIT FAILURE
START no_such_file

Para obtener más información, consulte esto y aquello.

Espero eso ayude. ¡Buena suerte!

Vlad es la respuesta que usaría. Sin embargo, para aumentar la suya, trato de usar una declaración EXIT explícita si realmente necesito ese estado de retorno. Por ejemplo

column status_for_exit new_value exitcode noprint
select status_computation (parm, parm) as status_for_exit from dual;

exit &exitcode;

La mejor acción podría ser una combinación de las otras ideas en esta página y las ideas en

¿Ayuda con SQLPLUS por favor? ¿Cómo hacer que SQLPLUS se inicie con DEFINE `OFF` inicialmente?

Cree un archivo login.sql o edite el global para tener

WHENEVER OSERROR EXIT FAILURE
WHENEVER SQLERROR EXIT SQL.SQLCODE

dentro de eso. Luego, si el archivo no existe, se producirá un error. Si una línea falla, se producirá un error.

Sin embargo, tenga en cuenta que, como dicen los documentos en: https://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_twelve052.htm#SQPUG135, ciertos comandos aún no generarán errores como cabría esperar.

Eres capaz de corroborar nuestro ensayo ejecutando un comentario y dejando una puntuación te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *