Hi 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 > 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 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? > >