|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre régulier
![]() Inscription : mai 2003 Messages : 86 ![]() |
Bonjour,
J'essaie d'envoyer le texte d'une clause IN en paramètre d'une fonction. Si je passe une seule valeur ça marche mais à partir de 2 le serveur n'arrive pas à faire le matching. Code :
Code :
Mais si je fais ça : Code :
C'est sûrement un problème d'interprétation du paramètre mais je ne vois pas comment le résoudre. |
||||||
|
|
00
|
|
|
#2 | ||
|
Membre régulier
![]() Inscription : mai 2003 Messages : 86 ![]() |
OK je crois que j'ai pigé.
Il fallait mettre ça : Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : août 2007 Messages : 128 ![]() |
Le problème vient du fait qu'il place la chaîne complète à la place indiquée. Donc quand $1 vaut '11111', il exécutera l'instruction :
Code :
SELECT INTO i count(DISTINCT id) FROM objects1 WHERE id IN('1111'); Code :
SELECT INTO i count(DISTINCT id) FROM objects1 WHERE id IN('11111,22222'); Si tu veux qu'il utilise cette chaîne pour complètement l'intégrer à l'instruction tu dois utiliser EXECUTE : Code :
EXECUTE 'SELECT count(DISTINCT id) FROM objects1 WHERE id IN(' || $1 || ');'; |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com