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 :

[PL/SQL] curseurs et valeur Null dans la clause WHere


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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] curseurs et valeur Null dans la clause WHere
    Bonjour,

    j'ai le curseur suivant

    CURSOR cCurseus(w_code IN table.CODE%TYPE,
    w_lib_nom IN table.LIB_NOM%TYPE,
    w_lib_pr1 IN table.LIB_PR1%TYPE,
    w_lib_pr2 IN table.LIB_PR2%TYPE
    ) IS
    SELECT cod_ind_opi
    FROM table
    WHERE code_opi = w_code
    AND lib_nom = w_lib_nom
    AND lib_pr1 = w_lib_pr1
    AND lib_pr2i = w_lib_pr2
    AND tem_date_nai_rel_opi = 'N';
    le probleme vient du fait que la valeur w_lib_pr2 n'est pas forcement renseigné et est parfois à NULL dans ce cas comment je fait pour que ce soit pris en compte dans la clause WHERE de mon cuseur?

    Question de novice sans doute mais si ce serait sympa de m'aider...

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Utilises NVL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND lib_pr2i = NVL(w_lib_pr2, lib_pr2i)
    Attention, si lib_pr2i est NULL, ca donnera NULL = NULL ce qui n'est jamais vrai.


    Dans ce cas faut faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    AND (
     ( lib_pr2i IS NOT NULL AND = NVL(w_lib_pr2, lib_pr2i))
     OR
     (lib_pr2i IS NULL AND w_lib_pr2 IS NULL )

  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
    merci pour la reponse je vais tester pour voir...

  4. #4
    Expert confirmé
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    AND ( lib_pr2i = w_lib_pr2 OR w_lib_pr2 IS NULL )
    ...

  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
    j'ai fait des tests et ça marche bien...

    par contre il n'existe pas une fonction SQL qui permet de traiter ces cas?

  6. #6
    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
    heu.. quelle est la difference entre les deux solutions proposées (celle de McM et celle de SheikYerbouti)

  7. #7
    Expert confirmé
    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
    Par défaut
    la mienne tient sur une ligne !

Discussions similaires

  1. Réponses: 11
    Dernier message: 19/10/2010, 14h50
  2. Tester valeur null dans une requête sql
    Par bobosh dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 31/07/2008, 13h07
  3. [SQL] Affichage des valeurs nulles dans un Count
    Par at_first dans le forum Access
    Réponses: 4
    Dernier message: 06/03/2007, 11h07
  4. Réponses: 3
    Dernier message: 10/08/2005, 11h11
  5. ASP et valeur NULL dans requêtes SQL
    Par chuck_m dans le forum ASP
    Réponses: 7
    Dernier message: 13/08/2004, 11h15

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