| From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> | 
|---|---|
| To: | nummervet nummervet <nummervet(at)mail(dot)ru> | 
| Cc: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: Execute ignoring cursor? | 
| Date: | 2016-04-08 14:25:48 | 
| Message-ID: | CAFj8pRCm_RnKn37aZSL9KDMczOCc1ADuECceWJ9SorBNtcd8Xg@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
Hi
2016-04-08 16:17 GMT+02:00 nummervet nummervet <nummervet(at)mail(dot)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.
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?
>
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2016-04-08 14:45:01 | skink vs. phrase full text search | 
| Previous Message | nummervet nummervet | 2016-04-08 14:17:33 | Execute ignoring cursor? |