Gracias a la referencia dada por @Kacper, pude adaptar este sqlplus /nolog
a mi caso; esta es la idea:
- abrir
sqlplus
solo sin conectar - establecer un código de retorno específico en
SQLERROR
- esto es lo que sucede cuandoconnect
falla - el código de retorno se puede recopilar como de costumbre en la secuencia de comandos de la persona que llama:
a.sh
sqlplus /nolog << EOF
WHENEVER SQLERROR EXIT 50
WHENEVER OSERROR EXIT 66
connect /@${MISTERY_DB}
exit;
EOF
Luego la llamada:
/ju $ export MISTERY_DB="eg_NON_EXISTING_DB"
/ju $ a.sh
SQL*Plus: Release 11.2.0.4.0 Production on Tue Nov 29 08:43:44 2016
Copyright (c) 1982, 2013, Oracle. All rights reserved.
SQL> SQL> SQL> ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
/ju $ echo $?
50
También relacionado: Conéctese a sqlplus en un script de shell y ejecute scripts SQL