Re[2]: [HACKERS] Execute ignoring cursor?
От | nummervet nummervet |
---|---|
Тема | Re[2]: [HACKERS] Execute ignoring cursor? |
Дата | |
Msg-id | 1460126801.315102444@f315.i.mail.ru обсуждение исходный текст |
Ответ на | Re: Execute ignoring cursor? (Pavel Stehule <pavel.stehule@gmail.com>) |
Ответы |
Re: Execute ignoring cursor?
|
Список | pgsql-hackers |
That didn't work for me:
ERROR: syntax error at or near "$"
LINE 1: ...ibute_id, set_id ) (select $."151", '...
ERROR: syntax error at or near "$"
LINE 1: ...ibute_id, set_id ) (select $."151", '...
Пятница, 8 апреля 2016, 17:25 +03:00 от Pavel Stehule <pavel.stehule@gmail.com>:
Hi
2016-04-08 16:17 GMT+02:00 nummervet nummervet <nummervet@mail.ru>:
Hello. Didn't find dedicated plpgsql list, so decided to post question here.
I am trying to create a function that will pick up some values from cursor and execute them as a dynamic query.
However, once i use EXECUTE, its seems to be ignoring the existence of cursor and try to pick up values from table.
Basically:
insert into mytable ( value, attribute_id, set_id ) (select rec."151", '201', '1')
works, but
execute 'insert into mytable ( value, attribute_id, set_id ) (select rec."151", ''201'', ''1'')'
Dynamic queries are executed in own space and there are not direct access to plpgsql variables.
please, try: execute 'insert into mytable ( value, attribute_id, set_id ) (select $1."151", ''201'', ''1'')' using rec;
The content should be passed to dynamic query via USING clause.
http://www.postgresql.org/docs/current/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN
http://www.postgresql.org/docs/current/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN
Regards
Pavel Stehule
fails with
ERROR: missing FROM-clause entry for table "rec"
LINE 1: ...ibute_id, set_id ) (select rec."151",...
Is there any way around it? Or should i just give up and do it some other way?
В списке pgsql-hackers по дате отправления: