Re: Difficulty passing in an array of values to EXECUTE - Mailing list pgsql-general

From Nick Rowlands
Subject Re: Difficulty passing in an array of values to EXECUTE
Date
Msg-id 453F5365.6090000@scotwebshops.com
Whole thread Raw
In response to Re: Difficulty passing in an array of values to EXECUTE  ("William Leite Araújo" <william.bh@gmail.com>)
List pgsql-general
William Leite Araújo wrote:
>
> 2006/10/25, Richard Huxton <dev@archonet.com <mailto:dev@archonet.com>>:
>
>     Nick Rowlands wrote:
>     > Hi there,
>     >
>     > I'm having trouble creating a function using plpgsql. I cannot
>     pass the
>     > array 'productids' to the ANY construct of the IN EXECUTE SELECT
>     > statement. Any ideas on what I'm doing wrong would be most
>     appreciated.
>     > Here's the function:
>
>     >     FOR row IN EXECUTE 'SELECT p.id <http://p.id>, sku,
>     description, base_price,
>     > j.name <http://j.name> AS jname, r.name <http://r.name> AS rname
>     >     FROM products2 p
>     >     INNER JOIN jewellery_types j ON j.id <http://j.id> =
>     p.jewellery_type
>     >     INNER JOIN ranges r ON r.id <http://r.id> = p.range_id
>
>
>       WHERE p.id <http://p.id> = ANY(
>     '|||array_to_string(|productids,',')||') '|| filter_jewellery LOOP
>
>
>
>
>     EXECUTE takes a string, so you're giving it the word "productids" not
>     the contents of the variable with that name.
>
>     You'll need to generate a string containing comma-separated values (or
>     the array definition) and use that.
>     --
>        Richard Huxton
>        Archonet Ltd
>
>     ---------------------------(end of
>     broadcast)---------------------------
>     TIP 5: don't forget to increase your free space map settings
>
>
>
> --
> William Leite Araújo
Fantastic. Thank you very much.


pgsql-general by date:

Previous
From: "William Leite Araújo"
Date:
Subject: Re: Difficulty passing in an array of values to EXECUTE
Next
From: Hannes Dorbath
Date:
Subject: DBI-Link, Oracle, database encoding