Re: variable value in array_to_string
От | Armand Pirvu (home) |
---|---|
Тема | Re: variable value in array_to_string |
Дата | |
Msg-id | 33699A13-AD2D-41C2-A730-543A0B61CBA0@gmail.com обсуждение исходный текст |
Ответ на | Re: variable value in array_to_string ("Armand Pirvu (home)" <armand.pirvu@gmail.com>) |
Ответы |
Re: variable value in array_to_string
|
Список | pgsql-general |
Played with unnest but not much luck
NOTICE: {item_id,show_id}
NOTICE: item_id
It takes only the first array element in consideration
Ughhhh
On Nov 21, 2016, at 5:02 PM, Armand Pirvu (home) <armand.pirvu@gmail.com> wrote:
My bad on the back tick. No idea why it turned that wayOK got that David.The idea is that I have the pk columns in an array which I would like to manipulate from the array itself rather than running same query variations multiple timesFor example I get in foo{item_id,show_id}And from here on I was looking to get saya.item_id , a.show_idand all sort of variationsThanks for helpOn Nov 21, 2016, at 4:26 PM, David G. Johnston <david.g.johnston@gmail.com> wrote:Hi
Is there anyway I can pass a variable in the array_to_string function ?Yes, just like you can pass variables to any other function...
CREATE OR REPLACE FUNCTION test1 () RETURNS void AS $$DECLARE
foo text;
foo1 text;
begin
execute
'select ARRAY( SELECT d.COLUMN_NAME::text from information_schema.constraint_table_usage c, information_schema.key_column_ usage d '
||
'where c.constraint_name=d.constraint_name and c.table_name=d.table_name and c.table_schema='
||
quote_literal(‘myschema')
||
' and c.table_schema=d.table_schema and c.constraint_name like '
||
quote_literal('%_pkey%')
||
') ' into foo;
raise notice '%', foo;
foo1 :=ARRAY_TO_STRING(foo, ', ');
raise notice '%', foo1;
END;
$$ LANGUAGE plpgsql ;
The idea is that I want to slice and dice and not run the query x amount of timesI would suggest you learn to use the "format()" function, EXECUTE USING, and dollar quoting.So, I copy-pasted your example and placed it into a DO blockThe character before "myschema" came out as a back-tick instead of a single-quote.array_to_string has the signature (text[], text) but you've defined foo as being just text. Changing that results in a query that executes - though given my system doesn't have conforming data I get no results.David J.
В списке pgsql-general по дате отправления: