Skip site navigation (1) Skip section navigation (2)

Re: Tableau dans une requête

From: Samuel ROZE <samuel(dot)roze(at)aliceadsl(dot)fr>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Tableau dans une requête
Date: 2009-09-13 16:58:26
Message-ID: 1252861106.11394.82.camel@samuel-laptop (view raw or flat)
Thread:
Lists: pgsql-fr-generale
Il semblerait en réalité que je soit obliger de combiner
"array_to_string" et EXECUTE pour executer des requêtes dynamiques...

Le problème, c'est que ce n'est pas vraiment dynamique et, je pense
qu'au niveau perf dans les caches, etc... les commandes exécutées via
EXECUTE sont moins bonnes... Mais ce n'est qu'une hypothése.
De plus, au niveau de la propreté du code, c'est pas top !

C'est pourquoi, s'il y a d'autres idées, ça m'intéresse énormément !

Merci !
Samuel.

Le dimanche 13 septembre 2009 à 18:22 +0200, Samuel ROZE a écrit :
> Re-Bonjour,
> 
> J'ai un nouveau problème, c'est lors du passage d'un tableau (variable)
> dans une requête... Je ne vois pas bien comment faire, et surtout, je
> n'ai rien trouver à propos de ça dans la doc.
> 
> 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 ?
> 
> Merci!
> Cordialement, Samuel ROZE.
> 
> 


In response to

pgsql-fr-generale by date

Next:From: Guillaume LelargeDate: 2009-09-13 17:07:56
Subject: Re: Tableau dans une requête
Previous:From: Samuel ROZEDate: 2009-09-13 16:49:40
Subject: Re: Tableau dans une requête

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group