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 :

Gestion des exceptions


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 85
    Par défaut Gestion des exceptions
    Bonjour,

    Je veux faire une sélection dans la table "test" comme dans le script plus bas. Puis s'il n'existe pas alors je fais un deuxième select dans la table test_alias et là s'il ne trouve pas alors il devrait lever l'exception.

    Mais puisqu'il n'existe pas dans le premier select alors il lève l'erreur unhandled exception, je ne comprends pas ! Comment 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
    30
    31
    32
    declare
     
    reject exception;
    vo_error_msg varchar2(300);
    vo_id varchar2(3);
    vi_name varchar2(200);
     
      BEGIN
     
      vi_name:='Test';
     
          SELECT id
            INTO vo_id
            FROM test
           WHERE UPPER(name) = UPPER(vi_name)
             AND cancelled = 'N';
     
       IF vo_id IS NULL THEN
         SELECT id
            INTO vo_id
            FROM test_alias
           WHERE UPPER(alias_name) = UPPER(vi_name)
             AND cancelled = 'N';
       END IF;
     
     
          EXCEPTION
          WHEN NO_DATA_FOUND THEN
             vo_error_msg := 'Invalid : Test id (' || vi_name|| ') cancelled, in test or in test_alias';
             RAISE reject;
     
       END;

  2. #2
    Expert confirmé 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
    Par défaut
    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
     
    Declare
      l_exist Boolean := True; 
      ...
    Begin
       -- Etc.
      Begin
        Select Col
           Into l_Col
           From Table
          Where ...
      Exception
         When NO_DATA_FOUND Then
             l_exist := False;
      End;
      --
      If Not l_Exist Then
        Select Col 
           Into l_Col
           From Table
          Where ...
      End If;
      -- etc.
    Exception
      When NO_DATA_FOUND THEN
          Message anomalie
    End;

Discussions similaires

  1. [ADOConnect] gestion des exception en tout temps
    Par portu dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/04/2005, 19h01
  2. [ORACLE 9i] Gestion des exceptions
    Par sygale dans le forum SQL
    Réponses: 6
    Dernier message: 19/08/2004, 15h06
  3. Gestion des exception (EOleException)
    Par shurized dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/06/2004, 17h25
  4. [XMLRAD] gestion des exceptions
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/01/2003, 17h48
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

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