Re: Difficulty passing in an array of values to EXECUTE
От | Nick Rowlands |
---|---|
Тема | Re: Difficulty passing in an array of values to EXECUTE |
Дата | |
Msg-id | 453F5365.6090000@scotwebshops.com обсуждение исходный текст |
Ответ на | Re: Difficulty passing in an array of values to EXECUTE ("William Leite Araújo" <william.bh@gmail.com>) |
Список | 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 по дате отправления: