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 :

[PL/SQL] gestion des exceptions - probleme


Sujet :

Administration Oracle

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 46
    Par défaut [PL/SQL] gestion des exceptions - probleme
    Bonjour,

    J'ai deux fonctions : fct1 et fct2 la premiere appelant la deuxieme.

    Dans fonction appelé fct2 je gère les exceptions mais je voudrais pouvoir recupérer le code oracle de mon erreur oracle et la transmettre à la fonction appelante fct1 et que cela leve aussi une exception...

    jusqu'à presente je fait un RAISE dans la fonction fct2 ce qui leve une exception dans la fonction appelante fct1 mais je ne peux pas recuperé le code de l'erreur Oracle

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 349
    Par défaut
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    exception when others then
     return sqlcode ;
    end ;
    ...

    CDLT

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 46
    Par défaut
    en tulisant sqlcode ou sql errm dans la fonction appeelé fct2, je retrouve bien le code de l'erreur oracle mais cela ne me permet de pas de levé automatiquement une exception dans la fonction appelante fct1

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 349
    Par défaut
    if fct(toto) != valeur cohérante retournée then ...

    ou mieux ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    exception when others then
     RETURN 'err:'||to_char(sqlcode) ;
    end ;
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... if instr(fct(toto),'err',0) >=0 then ....

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 46
    Par défaut
    c'est ce que je pensais faire mais je me demandais si il n'y avait pas une autre solution "plus propre"...

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 349
    Par défaut
    [Résolu] ??

  7. #7
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Une autre façon de faire :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    create or replace function f1 return number is
       a number;
    begin
      a := 'a';
      return to_number (a);
    exception
      when others then
         raise_application_error (sqlcode, sqlerrm);
    end;
    /
    Function created.
     
    SQL> create or replace function f2 return number is
      2     a number;
      3  begin
      4     a := f1;
      5     return a;
      6  exception
      7     when others then
      8        dbms_output.put_line (sqlcode || ' : ' || sqlerrm);
      9        return null;
     10  end;
     11  /
    Function created.
     
    SQL> variable a number
    SQL> exec :a := f2
    -21000 : ORA-21000: error number argument to raise_application_error of -6502 is out of range
    PL/SQL procedure successfully completed.

Discussions similaires

  1. PL/SQL gestion des exceptions
    Par ensemien dans le forum PL/SQL
    Réponses: 2
    Dernier message: 10/09/2014, 00h11
  2. Probleme Gestion des exception v2000
    Par Badtothebone93 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 21/04/2009, 13h35
  3. PL/SQL: gestion des exceptions
    Par elpibe dans le forum PL/SQL
    Réponses: 5
    Dernier message: 16/02/2007, 11h57
  4. Probleme de gestion des exceptions
    Par uriotcea dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/11/2006, 21h26
  5. [EXCEPTION] Gestion des Exceptions dans PL/SQL
    Par Titouf dans le forum PL/SQL
    Réponses: 4
    Dernier message: 08/02/2006, 00h46

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