|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre à l'essai
![]() Inscription : mai 2005 Messages : 55 ![]() |
Version: Oracle Database 10g Enterprise Edition Release 10.2.0.2.0
Bonjour, J'ai un drole de résultat à l'execution de la requète suivante: Il ne me retourne pas de tuple, mais lorsque je mets un LIKE à la place du signe = au niveau de la comparaison des postes , cela fonctionne. Cela fonctionne avec le signe = dans les conditions suivantes : Si on met en commentaire une des 2 requetes de l'union ou si on fait assign.m_post_id = po.post_id(+) Le type de post_id est identique dans toutes les table, c'est du number(6). Comment cela se fait-il? Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
ça peut être NULL ?
|
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : mai 2005 Messages : 55 ![]() |
Oui , il se peut que le post_id soit null.
Mais normalement , même si il y a des NULL, il doit tout de même retourné ceux dont la comparaison était OK non? |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 450 ![]() |
Tu peux essayer de réduire ta requete (en nombre de tables annexes) pour ne garder que "assign" et "po" ?
Ensuite faudrait trouver un cas qui est ramené par le like et pas par le = et afficher toutes les colonnes qui sont dans ta requete dans le SELECT
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#5 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
Remplace : par : Code :
AND NVL(assign.m_post_id,'NULL') = NVL(po.post_id,'NULL') |
|
|
|
00
|
|
|
#6 | |
|
Expert Confirmé
![]() Chef de projet en SSII Inscription : janvier 2004 Messages : 2 866 ![]() |
Citation:
__________________
Un problème sans solution est un problème mal posé Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP. |
|
|
|
00
|
|
|
#7 | |
|
Membre à l'essai
![]() Inscription : mai 2005 Messages : 55 ![]() |
Citation:
|
|
|
|
00
|
|
|
#8 | ||
|
Membre à l'essai
![]() Inscription : mai 2005 Messages : 55 ![]() |
Je viens de vérifié, assign ne contient pas de valeur NULL pour le m_post_id, le person_id et la table M_POSTES n'en contient pas non plus.
En fait Nous avons une base "bidev" avec un shema perallApp. Il y a une autre base "devdb" avec les shemas Master et Perall. Dans PerallApp de bidev, il y a toutes les procédures,fonctions,... et dans les shemas de devdb, il y a toute les datas. PerallApp accède aux data grace à des synonyms contenant un dblink. Style: synonym P_PERSONS FOR P_PERSONS@PERALL_DATA synonym M_POSTES FOR M_POSTES@MASTER_DATA Je viens de remarqué que lorsque j'exécute la requète sur "devdb" dans le shema Perall, cela fonctionne correctement. Je ne sais pas si le fait de travaillé par dblink peut faire "déconné" le système mais il y a tout de même de drôle de réactions car Si dans le code de la requète, on mets en commentaire Code :
|
||
|
|
00
|
|
|
#9 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
|
|
|
|
00
|
|
|
#10 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
c'est bien du number pas du varchar ?
|
|
|
00
|
|
|
#11 |
|
Membre à l'essai
![]() Inscription : mai 2005 Messages : 55 ![]() |
Oui , c'est bien du Number(6) pour tout les id.
Mais c'est comme j'écrivais plus haut, suivant le shéma dans lequel j'exécute cette requète, cela fonctionne bien ou pas. Donc je vais un peu demandé demain matin au DBA comment cela peut-il se produire. Merci quand même pour votre investissement. Si j'ai une solution , je la posterai. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com