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

PL/SQL Oracle Discussion :

Catcher un SQLCODE [11gR2]


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Élève
    Inscrit en
    Avril 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Avril 2004
    Messages : 97
    Points : 62
    Points
    62
    Par défaut Catcher un SQLCODE
    Bonjour,

    Je ne voudrais catcher qu'un seul type d'erreur (et remonter toutes les autres)
    qui n'est pas référencée par un mot clé. Il s'agit de l'erreur : ORA-02149

    Il me semble que ce n'est pas possible de catcher une erreur par son sqlcode, je me trompe ?

    Comment faire alors ?

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 802
    Points
    30 802
    Par défaut
    Tu peux aussi récupérer toutes les erreurs, ne traiter que la tienne et faire suivre les autres...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    BEGIN
      mon traitement
    EXCEPTION
      WHEN OTHERS THEN
        IF SQLCODE = lemien THEN
          je fais ce qu'il faut
        ELSE
          RAISE
        END IF;
    END;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Evitez d'intercepter toutes les exceptions cela a quelques petits inconvénients
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Declare
      Inexistent_partition  Exception;
      Pragma Exception_Init(Inexistent_partition, -2149);  
    BEGIN
       Null;
    EXCEPTION
      WHEN Inexistent_partition THEN
        Null; -- c'est OK on laisse filler
    END;

  4. #4
    Membre du Club
    Profil pro
    Élève
    Inscrit en
    Avril 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Avril 2004
    Messages : 97
    Points : 62
    Points
    62
    Par défaut
    Merci pour vos réponses ! J'ai pu m'en sortir

    Cpdt, laquelle de vos 2 solutions est la plus rapide ?

    Celle de mnitu car il n'y a pas de condition if ?

  5. #5
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    La rapidité n'a pas de sens dans ce contexte. Il n'y a pas de if mais il y a un appel de procédure en plus. Non les inconvénients de la première solution sont ailleurs!

  6. #6
    Membre du Club
    Profil pro
    Élève
    Inscrit en
    Avril 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Avril 2004
    Messages : 97
    Points : 62
    Points
    62
    Par défaut
    Mais quels sont les inconvénients de la 1ère solution ? Je ne vois pas...

  7. #7
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Vous pouvez regarder ce lien qui montre certains problèmes :
    http://www.orafaq.com/wiki/WHEN_OTHERS

  8. #8
    Membre du Club
    Profil pro
    Élève
    Inscrit en
    Avril 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Avril 2004
    Messages : 97
    Points : 62
    Points
    62
    Par défaut
    Ok c'est plus clair.
    Merci à tous pour vos réponses

  9. #9
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par blackstrobe Voir le message
    Mais quels sont les inconvénients de la 1ère solution ? Je ne vois pas...
    Le fait d'intercepter toutes les exceptions quand vous savez gérer qu'une seule et le fait d'augmenter le nombre des instructions dans le gestionnaire du code.

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

Discussions similaires

  1. [ZEOS] récupérer le SQLCODE ?
    Par qi130 dans le forum Bases de données
    Réponses: 1
    Dernier message: 27/09/2005, 23h09
  2. [Exception] Comment catcher une runtime exception ?
    Par bulbo dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 16/06/2005, 09h46
  3. Catcher une exception lancée dans un plugin
    Par :Bronsky: dans le forum C++
    Réponses: 8
    Dernier message: 18/01/2005, 00h38
  4. Catcher un evenement d'un Check d'un ListView
    Par swirtel dans le forum C++Builder
    Réponses: 6
    Dernier message: 03/12/2004, 16h14
  5. Script SQL avec des EXIT SQL.SQLCODE
    Par fidififouille dans le forum Oracle
    Réponses: 14
    Dernier message: 23/04/2004, 16h45

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