Récupération code retour sql

Récupération code retour sql - Shell/Batch - Programmation

Marsh Posté le 09-07-2013 à 09:05:53    

Salut,
 
Je développe un script en ksh qui lance des commandes ( alter table, drop ...)
et j'aimerai recupérer le code retour sql en cas d'échec afin de pouvoir le tester et l'afficher dans ma log.
 
Mon code est  

Code :
  1. sqlplus -S user/pass@base <<EOF
  2. drop table vtab;
  3. exit;
  4. EOF
  5. if [[ $? != 0 ]]
  6. then
  7.         echo " Echec de suppression"
  8. else
  9.         echo " Table supprimée."
  10. fi


 
Le soucis c'est qu'il interprète mal le code retour,
si le sql ne se déroule pas bien,il sort quand même avec un code retour à 0.
 
Merci de votre aide.

Reply

Marsh Posté le 09-07-2013 à 09:05:53   

Reply

Marsh Posté le 09-07-2013 à 09:41:36    

Il faudrait rajouter en début de script :

Code :
  1. WHENEVER OSERROR EXIT FAILURE;
  2. WHENEVER SQLERROR EXIT FAILURE;


 
Mais je ne suis pas fan de sqlplus et de sa gestion d'erreur. Je prefère quand disponible utiliser perl avec DBI (il est fourni en général lors de l'installation d'oracle sous os unix).
 
L'autre solution est d'intercepter la sortie (stdout ou stderr) et de chercher les chaines d'erreurs
 


Message édité par dreameddeath le 09-07-2013 à 09:42:51
Reply

Marsh Posté le 09-07-2013 à 10:54:36    

je ne peux pas utiliser perl, du coup je dois me débrouiller  
avec le ksh

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed