That didn't work for me: ERROR: syntax error at or near "$" LINE 1: ...ibute_id, set_id ) (select $."151", '...
>Пятница, 8 апреля 2016, 17:25 +03:00 от Pavel Stehule ><pavel.steh...@gmail.com>: > >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? >> >