Attention pour remonter les erreurs SQL dans VTOM, il faut ajouter la ligne :
WHENEVER SQLERROR EXIT SQL.SQLCODE
après la connexion sqlplus, stocker le resultat dans une variable err_sql=$? puis sortir avec la valeur de la variable.
exemple :
sqlplus ${1}/${2} < $0.txt
WHENEVER SQLERROR EXIT SQL.SQLCODE
EXEC csv.generate(‘DIR_EXPORT_CSV’, ‘${3}.csv’,’SELECT * FROM ${4}’);
exit
EOSQL
err_sql=$?
…..
exit $err_sql
sqlplus $1/$2 <WHENEVER SQLERROR EXIT SQL.SQLCODE
exec Pack_Batch_Quotidien.p_quotidien($3);
exit
EOSQL
si l’instruction sqlplus est suivie d’une autre instruction, envoi de mail par exemple, il faut mémoriser la valeur de l’erreur sql et la transmettre en fin de script.
sqlplus $1/$2 <WHENEVER SQLERROR EXIT SQL.SQLCODE
exec Pack_Batch_Quotidien.p_quotidien($3);
exit
EOSQL
err_sql=$?
${ABM_BIN}/tmail -c ${ABM_BIN}/tmail.ini -cc $4 -sub « Traitement $TOM_JOB Terminé » -msg »
Bonjour,
Le traitement est terminé, vérifier les fichiers logs joints.*
Bonne journée. »
exit $err_sql