IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sql*Plus Oracle Discussion :

[Oracle10g / Unix] Code de retour de sqlplus


Sujet :

Sql*Plus Oracle

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 45
    Par défaut [Oracle10g / Unix] Code de retour de sqlplus
    Bonjour,

    J'appelle sqlplus depuis un script Shell, pour lancer une procédure PL/SQL.
    Je le lance de la manière suivante :
    nomRequeteSQL="EXECUTE MA_PROC;"
    sqlplus -s $MYUSER/$MYPWD@$MYSID << EOF
    $nomRequeteSQL
    EOF

    Cependant, quelle que soit l'exécution de la requête PL/SQL (succès, exception, rollback segment too small, ...), le code retour est toujours 0.
    Existe t-il un moyen d'appeler sqlplus, de manière à savoir si le code PL/SQL appelé s'est déroulé correctement ?

    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Par défaut
    Je suis sous 9i mais ca ne doit pas etre si different que ca sous 10G:

    Voici ce que je mets en entete dans mes fichiers .sql:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SPOOL monlog.log
    SET SCAN OFF;
    SET ECHO ON;
    set serveroutput on;
    WHENEVER SQLERROR EXIT 1;
    WHENEVER OSERROR EXIT 2;
    ... le reste (sql/procedure,....)
    et dans mes fichier .sh:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    # $1 = username
    # $2 = password
    # $3 = SID
     
    DATA_DBUSER=$1
    DATA_DBPASS=$2
    DATA_DBSID=$3
    DATA_DBLOG="toto.sh.$DATA_DBSID.log"
     
    sqlplus $DATA_DBUSER/$DATA_DBPASS@$DATA_DBSID @tata.sql >$DATA_DBLOG
    if [ "$?" != "0" ]; then
    	echo "tata.sql Failed!" >>$DATA_DBLOG
    	exit 1
    fi
    Il suffit alors de regarder la fin du fichier .log pour voir le detail de l'erreur.

    ---
    Farid

  3. #3
    Membre expérimenté
    Inscrit en
    Janvier 2009
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 162
    Par défaut
    bonjour,

    Une solution consiste à faire renvoyer un code retour par ta procédure,puis :

    #!/bin/ksh
    MSG="KO"
    nomRequeteSQL="EXECUTE MA_PROC;"
    [[ `sqlplus -s $MYUSER/$MYPWD@$MYSID << EOF
    $nomRequeteSQL
    EOF` -eq 0 ]] && MSG="OK"
    echo $MSG

    ou avec un if then else

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 45
    Par défaut
    Merci beaucoup pour vos réponses, ça a résolu mon problème.
    Je préfère la solution du WHENEVER SQLERROR EXIT 1, ça règle mon problème sans rien modifier d'autre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Runtime] code de retour = 1
    Par d_token dans le forum API standards et tierces
    Réponses: 19
    Dernier message: 29/08/2006, 14h57
  2. [Mail] codes de retour email
    Par drommk dans le forum Langage
    Réponses: 8
    Dernier message: 26/06/2006, 14h53
  3. sqlldr code de retour 137
    Par thunderblade dans le forum Oracle
    Réponses: 9
    Dernier message: 18/04/2006, 13h55
  4. DELPHI6, Programme console et code de retour
    Par Desraux dans le forum Débuter
    Réponses: 2
    Dernier message: 21/07/2005, 08h15
  5. [Debutant(e)] Code de retour de mon programme
    Par benji999 dans le forum Général Java
    Réponses: 2
    Dernier message: 10/12/2004, 13h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo