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

Oracle Discussion :

Comment verifier resultat d'un select into


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 30
    Points : 23
    Points
    23
    Par défaut Comment verifier resultat d'un select into
    Bonjour,

    je suis en train de creer une procedure en PL/SQL sous oracle.

    et je souhaiterais faire un test sur un "select .. into maValeur where .. " et faire une action dans le cas ou il n'y a pas de resultat retourné, et une autre action lorsque j'ai un resultat.

    en d'autre termes je souhaite faire un genre
    if maValeur ==null
    then

    si quelqu'un saurait comment faire ce genre de manip, cela m'aiderais beaucoup. Merci

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    si un SELECT ne retourne aucun résultat il retourne une exception NO_DATA_FOUND... la recherche sur le forum fera le reste

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 30
    Points : 23
    Points
    23
    Par défaut
    j'ai deja fait une recherche avant de poster.
    Je n'ai vu que
    execpetion when no_data_found then

    le probleme c'est qu'apperement le else n'est pas gerer par ce bloc.
    Alors que moi je veus faire une action si un resultat est retourné.

    desolé, si ca semble evident mais je debute un peu en PL

    EDIT j ai rien dit, je viens de trouver, il suffit juste de faire ce qu'on veut faire dans le cas contraire apres le End.

    merci

  4. #4
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Il faut positionner judicieusement votre bloc Exception:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    Begin
       Select ... Into ... From ....
    Exception
       When no_data_found Then
          ... ce que vous voulez faire
    End;
    ...

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Quand NO_DATA_FOUND est déclenché le code est renvoyé sur l'instruction ad hoc dans le bloc EXCEPTION, sinon il continu le traitement normalement. Le ELSE est donc entre le SELECT et le bloc EXCEPTION

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par Nizarazu
    EDIT j ai rien dit, je viens de trouver, il suffit juste de faire ce qu'on veut faire dans le cas contraire apres le End.
    Pas nécessairement après le End, c'est-à-dire en dehors du bloc begin... exception...end.

    Vous pouvez traiter votre "if SQL not null" juste après votre requête SQL car si une exception est levée vous passerez à la partie EXCEPTION :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    BEGIN
      ...
      SELECT ... ;
      :LB_trouve := TRUE; -- dans le cas où la requête ramène des données
    EXCEPTION WHEN NO_DATA_FOUND THEN
      :LB_trouve := FALSE; -- dans le cas où la requête NE ramène PAS de données
    END;

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

Discussions similaires

  1. [Sauvegarde] SELECT * INTO OUTFILE ou bien Mysqldump ?
    Par mathieu dans le forum Administration
    Réponses: 17
    Dernier message: 25/04/2013, 16h58
  2. Comment auditer les modifications db_dboption select into
    Par tibal dans le forum Adaptive Server Enterprise
    Réponses: 5
    Dernier message: 14/07/2009, 14h34
  3. comment mettre le resultat d'une select dans fich txt
    Par StyleXP dans le forum Langage
    Réponses: 3
    Dernier message: 31/05/2006, 15h07
  4. comment verifier l'appartenance a une table?
    Par raul83 dans le forum Access
    Réponses: 7
    Dernier message: 11/10/2004, 16h07
  5. schema xml + xml qui va avec, comment verifier?
    Par Slash dans le forum Valider
    Réponses: 4
    Dernier message: 02/03/2003, 11h16

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