Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como verificar se o sqlplus pode se conectar?


Graças à referência dada por @Kacper, pude adaptar este sqlplus /nolog para o meu caso; eis a ideia:
  1. abra sqlplus apenas sem conectar
  2. defina um código de retorno específico em SQLERROR - isto é o que acontece quando connect falha
  3. o código de retorno pode ser coletado normalmente no script do chamador:

a.sh

sqlplus /nolog << EOF
 WHENEVER SQLERROR EXIT 50
 WHENEVER OSERROR EXIT 66
 connect /@${MISTERY_DB}
 exit;
EOF

Então a chamada:
/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

Também relacionado: Conecte-se ao sqlplus em um script de shell e execute scripts SQL