Ogni volta che eseguo uno script sql usando Sql * plus e controllo $?, Ottengo 0 anche quando lo script non ha avuto successo.Sql * plus restituisce sempre il codice di uscita 0?
Esempio
#$ sqlplus user/[email protected] @script.sql
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Aug 7 14:20:44 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
v$dataf-ile d,
*
ERROR at line 6:
ORA-00933: SQL command not properly ended
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
$ echo $?
0
$
desidero per restituire un valore diverso da zero quando si verifica un errore.
Come posso ottenere quello?
MODIFICA - Il codice di uscita predefinito con WHENEVER OSERROR EXIT è 0 (SUCCESSO), quindi alcune altre opzioni devono essere specificate esplicitamente. Ho aggiunto l'opzione FAILURE. – dbenham