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

Administration Oracle Discussion :

code retour UNIX sur erreur ORA


Sujet :

Administration Oracle

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut code retour UNIX sur erreur ORA
    Hello,

    Est-ce que quelqu'un sait comment récupérer le code retour d'un script sql oracle sorti en erreur.

    exemple en c-shell, je voudrais connaitre le $status d'un sqlplus qui sortirait en erreur ORA***.

    D'avance merci,
    Vincent

  2. #2
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 840
    Points : 980
    Points
    980
    Par défaut
    Dans le script SQL, il faut prévoir un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    whenever sqlerror exit sql.sqlcode rollback
    et récupérer le code erreur dans une variable shell
    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    merci pour la réponse...

    en fait, ce qui m'interesserait, c'est d'avoir la liste des valeurs que peut prendre ce "ERROR_CODE". et si possible, sans chercher à la main toutes les valeurs que je peux obtenir (je me vois mal réussir à générer toutes les erreurs Oracle possibles...) ;o)

    re- d'avance merci
    vincent

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    bah ERROR_CODE peut prendre toutes les valeurs possibles dans Oracle... c'est le code d'erreur qui est joint aux messages...

    Qu'est ce que tu cherches exactement ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    ok, voila le test que je fais, par exemple... (en c-shell)

    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
    #!/bin/csh -f
     
    sqlplus bla/bla << FIN
    WHENEVER SQLERROR EXIT SQL.SQLCODE
     
    select * from daul;
     
    exit
    FIN
    set code_ret=$status
     
    echo "*************"
    echo $code_ret
     
    exit
    et voila le retour que j'ai dans ma console :

    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
    16
    17
    18
    19
    20
    21
    SQL*Plus: Release 8.1.7.0.0 - Production on Me Aou 25 10:30:38 2004
     
    (c) Copyright 2000 Oracle Corporation.  All rights reserved.
     
     
    Connected to:
    Oracle8i Enterprise Edition Release 8.1.7.4.0 - 64bit Production
    With the Partitioning option
    JServer Release 8.1.7.4.0 - 64bit Production
     
    SQL> SQL> SQL> select * from daul
                  *
    ERROR at line 1:
    ORA-00942: table or view does not exist
     
     
    Disconnected from Oracle8i Enterprise Edition Release 8.1.7.4.0 - 64bit Production
    With the Partitioning option
    JServer Release 8.1.7.4.0 - 64bit Production
    *************
    174
    moi, ce que je cherche, c'est une liste des valeurs que peut prendre ma variable code_ret.
    je gère des warnings à côté et je voudrais pas que mon traitement continue si une erreur Oracle survient. je voudrais donc utiliser comme code de sortie pour mes warnings des nombres qui ne sont pas utilisés par Oracle... et je ne mets pas la main sur une liste de ces valeurs.

    suis-je plus clair ?

    merci,
    vincent

  6. #6
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    Le probleme vient de l'exit CODE
    le shell ne recupere une erreur que sur 1 octet soit 256 valeures Possibles

    tu remarquera que 942 modulo 256 = 174 (CQFD)
    Signé : Capitaine Jean-Luc Picard

  7. #7
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut Re: code retour UNIX sur erreur ORA
    Citation Envoyé par vinz_07
    Hello,

    Est-ce que quelqu'un sait comment récupérer le code retour d'un script sql oracle sorti en erreur.

    exemple en c-shell, je voudrais connaitre le $status d'un sqlplus qui sortirait en erreur ORA***.

    D'avance merci,
    Vincent
    Personellement je fait sytématiquement ceci :
    Whenever SQLERROR EXIT FAILURE ROLLBACK;
    et je teste le code retour != 0 pour savoir si c'est OK ou KO

    Après si c'est KO : rien ne t'empeche de faire un truc qui analyse la log de ta requete avec un grep "ORA-" par exemple
    Signé : Capitaine Jean-Luc Picard

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    trop fort...

    merci tout le monde ;o)

    ++
    vincent

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

Discussions similaires

  1. [1.x] status code HTTP personnalisé sur erreur
    Par gavelin dans le forum Symfony
    Réponses: 9
    Dernier message: 08/02/2011, 16h28
  2. Erreur ORA-01555 sur un select
    Par LRI dans le forum Oracle
    Réponses: 2
    Dernier message: 13/05/2005, 10h42
  3. Erreur ORA-04082 sur un trigger
    Par elcaro92 dans le forum Oracle
    Réponses: 2
    Dernier message: 31/01/2005, 21h30
  4. CODE RETOUR GENERE PAR PL/SQL POUR SHELL UNIX
    Par mimi_été dans le forum PL/SQL
    Réponses: 6
    Dernier message: 18/11/2004, 08h32
  5. Erreur ORA-01036 sur un XMLGRAM
    Par sch dans le forum XMLRAD
    Réponses: 5
    Dernier message: 07/09/2004, 14h56

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