Hello les gens,
Quelqu'un pourait t il me fournir la syntaxe adéquate pour la création d'une procédure stockée parametrée (nommons la PSP) retournant plusieurs enregistrements ?
Le but étant de pouvoir par la suite réaliser une jointure externe avec le résultat que retournerais PSP avec quelque chose ressemblant à:
sans me prendre de SQL0338N
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT ... FROM table1, LEFT OUTER JOIN CAG_SECBASIS cag ON ( cag.champ1=table1.champ1 AND cag.EVENTID IN (PSP(9, 2010)) ,table2 WHERE ... ORDER BY...
Merci pour toutes vos contributions.
Edit:
ça devient compliqué je ne pense pas que la solution avec la procédure stockée soit bonne. Il est écrit ici que:
Remarquez quand même que les conditions 4 et 6 se "contredisent"An ON clause associated with a JOIN operator or in a MERGE statement is not valid for one of the following reasons.
1•The ON clause cannot include any subqueries.
2•Column references in an ON clause must only reference columns of tables that are in the scope of the ON clause.
3•Scalar fullselects are not allowed in the expressions of an ON clause.
4•A function referenced in an ON clause of a full outer join must be deterministic and have no external action.
5•A dereference operation (->) cannot be used.
6•A SQL function or SQL method cannot be used.
7•The ON clause cannot include an XMLQUERY or XMLEXISTS expression.
Je viens de trouver ce post: http://bytes.com/topic/db2/answers/8...error-sql0338n
La personne propose de remplacer:
Par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 LEFT OUTER JOIN ad_com CMD ON PH.cmd_cd = CMD.cmd_cd AND CMD.ts = (SELECT max(ts) FROM ad_com CMD_SUB WHERE CMD_SUB.v_frm <= 100 AND CMD_SUB.cmd_cd = PH.cmd_cd);Je ne vois pas comment transposer cette solution à mon exemple. Une aide serait plus qu'appréciée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 LEFT OUTER JOIN (SELECT cmd_cd, max(ts) as ts FROM ad_com WHERE v_frm <= 100 GROUP BY cmd_cd) CMD ON PH.cmd_cd = CMD.cmd_cd
Partager