J'ai le SQL suivant:
select <misc things>
from pluspbillline
left outer join workorder
on workorder.siteid=pluspbillline.siteid
and workorder.wonum = pluspbillline.refwo
and workorder.orgid = pluspbillline.orgid
left outer join ticket
on ticket.ticketid = pluspbillline.ticketid
and ticket.class=pluspbillline.ticketclass
left outer join pluspsalesorder
on pluspsalesorder.salesordernum=pluspbillline.salesordernum
and pluspsalesorder.siteid=pluspbillline.siteid
Dans Oracle SQL Developer 4.0.0.13 (connecté à une base de données DB2), j'obtiens une ligne ondulée sous l'italique suivant: "from pluspbillline" and "left external join workorder" .
L'avertissement indique que "pluspbillline est déconnecté du reste du graphique de jointure". Qu'est-ce que ça veut dire?
Je ne sais pas ce qui fait que Oracle SQL Developer donne l'erreur. Mais je mets ce commentaire ici pour le formater correctement.
Un graphique de jointure pourrait ressembler à ceci
pluspbillline ------+----< workorder
|
+----< ticket
|
+----< pluspsalesorder
Les lignes du graphique peuvent être étiquetées avec les champs de jointure. Mais cela vous donne une idée de base.
Je ne vois aucune raison pour laquelle vous recevez cet avertissement. Une faute de frappe de nom de colonne dans votre SQL peut-être? Ou une bizarrerie dans l'interface d'Oracle qui ne comprend pas correctement les métadonnées DB2? J'ai suggéré d'essayer l'outil d'IBM pour voir s'il s'agit simplement de leur programme.
Je l'ai aussi. Je ne sais pas exactement comment l'articuler, mais l'erreur semble être basée sur le flux logique du code.
Essentiellement parce que vous mentionnez la table pluspbillline
avant workorder
Je pense qu'elle s'attend à ce que la jointure soit on pluspbillline.siteid=workorder.siteid
etc.
Il semble que l'ordre des conditions des jointures devrait découler des premières tables identifiées aux dernières. Donc, ce qui suit devrait le rendre heureux:
plusbillline to workorder on pluspbillline.siteid=workorder.siteid...
"" to ticket on pluspbillline.ticketid = ticket.ticketid...
"" to pluspsalesorder on pluspbillline.salesordernum = pluspsalesorder.salesordernum...
Je ne pense pas que cela changerait le travail d'Oracle (en supposant que vous n'utilisiez pas d'indicateurs d'optimisation), donc je ne prendrais la peine de changer que si vous détestez les lignes ondulées.
J'ai eu le même message en survolant le mot "GAUCHE", mais la requête entière s'est déroulée sans problème. D'un autre côté, lorsque j'ai survolé "AVEC", j'ai reçu un conseil sur la restructuration de la requête entière. Ainsi, ce message sur la déconnexion pourrait ne pas être un signe d'erreur, mais un avertissement concernant une phrase trop complexe. L'éditeur de SQLDeveloper ne mentionne pas le niveau du problème.
Le problème est dû au fait que la procédure Oracle a le même paramètre d'entrée nommé que la colonne de la table à laquelle vous vous joignez.
. .bank_nbr