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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
CREATE OR REPLACE FUNCTION mafonction(text)
  RETURNS integer AS
$BODY$
DECLARE
	i bigint;
BEGIN
		select into i count(distinct id) from objects1 where id IN($1);
		return i;
END
$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION mafonction(text);
Si je fais ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
select * from mafonction('202500066668693')
Ca me renvoie 1 (c'est bon).
Mais si je fais ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
select * from mafonction('202500066668693,202500001319972')
Ca me renvoie 0...
C'est sûrement un problème d'interprétation du paramètre mais je ne vois pas comment le résoudre.