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
Views: Raw Message | Whole Thread | Download mbox | Resend email
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

Browse pgsql-fr-generale by date

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