| From: | Guillaume Lelarge <guillaume(at)lelarge(dot)info> |
|---|---|
| To: | pgsql-fr-generale(at)postgresql(dot)org |
| Cc: | Samuel ROZE <samuel(dot)roze(at)aliceadsl(dot)fr> |
| Subject: | Re: Tableau dans une requête |
| Date: | 2009-09-13 16:44:04 |
| Message-ID: | 200909131844.05038.guillaume@lelarge.info |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-fr-generale |
Le dimanche 13 septembre 2009 à 18:22:48, Samuel ROZE a écrit :
> [...]
> CREATE OR REPLACE FUNCTION graphiques.getCoupleCriteresId ( v_criteres
> varchar(50)[]) ) RETURNS integer AS $$
> DECLARE
> v_id_couple integer;
> BEGIN
> SELECT id_couple_critere , count(*) INTO v_id_couple
> FROM graphiques.critere
> WHERE lib_critere IN ANY 'v_criteres'::varchar(50)[]
> GROUP BY id_couple_critere
> HAVING count(*) = array_upper(v_criteres, 1);
>
> RETURN v_id_couple;
> END;
> $$ LANGUAGE plpgsql;
>
> J'ai une erreur lorsque je créé la fonction:
>
> ERREUR: erreur de syntaxe sur ou près de « ANY »
> LINE 1: ...t(*) FROM graphiques.critere WHERE lib_critere IN ANY 'v_cri...
> ^
> QUERY: SELECT id_couple_critere , count(*) FROM graphiques.critere WHERE
> lib_critere IN ANY 'v_criteres'::varchar(50)[] GROUP BY id_couple_critere
> HAVING count(*) = array_upper( $1 , 1) CONTEXT: SQL statement in PL/PgSQL
> function "getcouplecriteresid" near line 8
>
> Comment puis-je passer ce tableau dans une requête ?
>
Le problème n'est pas dans le paramètre, mais dans la requête du count(*). À
première vue, je dirais qu'on ne fait pas un IN ANY mais un = ANY.
--
Guillaume.
http://www.postgresqlfr.org
http://dalibo.com
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Samuel ROZE | 2009-09-13 16:49:40 | Re: Tableau dans une requête |
| Previous Message | Samuel ROZE | 2009-09-13 16:22:48 | Tableau dans une requête |