Script erreur Oracle

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

  1. Modérateur
    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