Script erreur Oracle

Fermé
remousse Messages postés 299 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 20 novembre 2014 - 27 mai 2013 à 16:04
mamiemando Messages postés 33346 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 novembre 2024 - 27 mai 2013 à 23:30
Bonjour,

J'ai un script shell qui exécute un fichier sql sur une BDD Oracle.
Avant de faire cette exécution je fait un test de connexion et au bout de 5 tentatives je passe en erreur.
J'aimerai pouvoir récupérer l'erreur oracle ORA-xxxxxx.

Voici mon code :

CONNECT=false
   i=1
   while [ $i -le 5 ] && [ $CONNECT == false ]
   do
     echo "exit" | sqlplus -L $USR@$SID | grep Connected > /dev/null
     if [ $? -eq 0 ] 
     then
       CONNECT=true
       echo "Connection OK"
     else
       if [ $i -eq 5 ]
       then
         echo "erreur sql"
       fi
     fi
     i='expr $i + 1' 
   done


Je pensais à renvoyer le résultat du exho dans un fichier temporaire et récupérer la ligne commençant par ORA- au lieu d'envoyer le echo dans /dev/null.

Avez-vous des idées ?

Par avance merci.

1 réponse

mamiemando Messages postés 33346 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 novembre 2024 7 803
27 mai 2013 à 23:30
Ta commande :

echo "exit" | sqlplus -L $USR@$SID | grep Connected > /dev/null


... me paraît suspecte.

En tout cas en admettant que ce soit la commande sqlplus qui écrite sur /dev/stderr, il faudrait écrire un truc du genre :

message=$(sqlplus -L $USR@$SID 2>&1)


... quitte à impliquer ta commande sqlplus dans un grep.

Bonne chance
0