Problème de jointure ORACLE avec comparaison de champs null

Problème de jointure ORACLE avec comparaison de champs null - SQL/NoSQL - Programmation

Marsh Posté le 03-08-2004 à 10:13:50    

Salut à tous!!!
Sous ce titre long et pas très clair y'a un problème qui parait simple mais bon! C'est sous oracle 9
J'ai 2 vues V1 et V2. Je dois (c'est à dire que j'ai pas le choix) faire une jointure externe grâce à une colonne commune A
" V1.A(+)=V2.A".
Il s'agit d'un caractère 'C' 'P' ou null. Quand les deux colonnes sont identiques avec 'C' ou 'P' y'a pas de problème... Mais si les colonnes A des deux vues est à null donc identique, donc elles doivent se joindre mais non j'ai bien mes données de la vue V2 mais pas celle de V1.
Alors si quelqu'un a une idée. Par avance merci :jap:
 

Reply

Marsh Posté le 03-08-2004 à 10:13:50   

Reply

Marsh Posté le 03-08-2004 à 11:38:01    

essaie nvl(V1.A(+), ' ') = nvl(V2.A, ' ')

Reply

Marsh Posté le 03-08-2004 à 13:23:10    

Un null n'est jamais = à un autre null ;) Il n'est égal à rien du tout :)

Reply

Marsh Posté le 05-08-2004 à 09:41:42    

Ah ok....pas convaincu mais si c'est comme ça alors.
Merci Arjuna, ça marche.

Reply

Marsh Posté le 05-08-2004 à 10:00:39    

Glod 2 a écrit :

Un null n'est jamais = à un autre null ;) Il n'est égal à rien du tout :)


 
En effet dans une requete ORACLE tu ne peut pas avoir qqchose = NULL
Il faut utiliser is null ou is not null.
Voila surement d'où provient ton erreur.
Pour la resoudre soit change cette valeur de Null en autre chose ou alors je ne sais pas comment gérer cela désolé.
a+

Reply

Marsh Posté le 05-08-2004 à 14:50:28    

TouperTinois a écrit :

En effet dans une requete ORACLE tu ne peut pas avoir qqchose = NULL
Il faut utiliser is null ou is not null.
Voila surement d'où provient ton erreur.
Pour la resoudre soit change cette valeur de Null en autre chose ou alors je ne sais pas comment gérer cela désolé.
a+


nan c'est bon, avec nvl on remplace les nulls par une valeur reconnue par la jointure et ça marche.

Reply

Marsh Posté le 31-05-2005 à 14:53:46    

Arjuna a écrit :

essaie nvl(V1.A(+), ' ') = nvl(V2.A, ' ')


 
 
J'ai exactement le même problème mais ça ne fonctionne toujours pas, y'a qu'avec le "is NULL" que je récupère mes valeurs mais ça m'arrange pas, sous Sybase il suffisait juste d'un "*=" c'est rageant !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed