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 :

Gestion d'erreur entre Ksh et plsql


Sujet :

Sql*Plus Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 67
    Par défaut Gestion d'erreur entre Ksh et plsql
    Bonjour à tous,
    Dans un script KSH je lance une session sqlplus.
    Je ne sais pas comment faire pour récupérer le coderr depuis la session sqlplus pour l'exploiter dans le script KSH

    Avez vous une ideé ?
    Merci pour votre aide


    Le script KSH :
    ======================================================
    #! /bin/ksh

    CONNECT_STRING="COMPTE/PWD@BASE"

    sqlplus -s /nolog <<EOF
    WHENEVER OSERROR Exit -1 rollback
    WHENEVER SQLERROR Exit SQL.SQLCODE rollback
    connect ${CONNECT_STRING}
    declare
    msgerr varchar(100);
    coderr number(5);
    begin
    msgerr := null;
    coderr := 1;
    K_PACKAGE.P_PROCEDURE(coderr, msgerr);
    if coderr = 0 then
    COMMIT;
    ELSE
    ROLLBACK ;
    END IF;
    END;
    /
    EOF

    if [ $? -ne 0 ]; then
    echo "Pb à l'execution de K_PACKAGE.P_PROCEDURE !"
    return 1
    fi
    ======================================================

  2. #2
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    IL est plus simple de parser le log et de chercher ORA-

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 67
    Par défaut
    C'est jouable si je voulais catcher que les erreurs Oracle ...
    Mais là il s'agit d'erreur logiques (en sortie de la proc) si jamais j'ai un code retour = -1 !!!

    Que faire ?

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 67
    Par défaut
    Voila la solution :

    ======================================================
    #! /bin/ksh

    CONNECT_STRING="COMPTE/PWD@BASE"

    sqlplus -s /nolog <<EOF
    WHENEVER OSERROR Exit -1 rollback
    WHENEVER SQLERROR Exit SQL.SQLCODE rollback
    variable ret number
    connect ${CONNECT_STRING}
    declare
    msgerr varchar(100);
    coderr number(5);
    begin
    msgerr := null;
    coderr := 1;
    K_PACKAGE.P_PROCEDURE(coderr, msgerr);
    if coderr = 0 then
    COMMIT;
    ELSE
    ROLLBACK ;
    END IF;
    :ret := coderr;
    END;
    /
    exit :ret
    EOF

    if [ $? -ne 0 ]; then
    echo "Pb à l'execution de K_PACKAGE.P_PROCEDURE !"
    return 1
    fi
    ======================================================

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

Discussions similaires

  1. PLSQL et la gestion des erreurs
    Par elfine dans le forum PL/SQL
    Réponses: 2
    Dernier message: 24/05/2011, 09h26
  2. GESTION D'ERREURS dans un bloc plsql
    Par hoolako dans le forum PL/SQL
    Réponses: 9
    Dernier message: 30/06/2009, 17h59
  3. gestion des erreurs d'entrée
    Par romson2 dans le forum Bibliothèque standard
    Réponses: 4
    Dernier message: 10/01/2009, 22h15
  4. Gestion des erreurs entre sorties sans la STL
    Par Djobird dans le forum SL & STL
    Réponses: 2
    Dernier message: 13/02/2007, 21h22
  5. Réponses: 4
    Dernier message: 04/07/2002, 12h31

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