2016-04-08 16:17 GMT+02:00 nummervet nummervet <nummer...@mail.ru>:
> Hello. Didn't find dedicated plpgsql list, so decided to post question
> 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.
> 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.
> 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