Re: syntax error with execute - Mailing list pgsql-general

From Gurjeet Singh
Subject Re: syntax error with execute
Date
Msg-id 65937bea0805301416l58b236f5rc341f4711efd187d@mail.gmail.com
Whole thread Raw
In response to syntax error with execute  ("A B" <gentosaker@gmail.com>)
List pgsql-general
On Fri, May 30, 2008 at 9:25 PM, A B <gentosaker@gmail.com> wrote:
I have a query like this in a plpgsql function:

EXECUTE 'INSERT INTO '||tablename||' ('||fields||') VALUES
('||vals||') RETURNING currval('''||seqname||''') INTO newid'

and I get the response:

ERROR:  syntax error at or near "INTO"
LINE 1: ...','2008','4',NULL) RETURNING currval('id_seq') INTO newid

And I do not understand this error. If I take the INSERT command and
run it by hand, it works fine, but it doesn't work in the function
when called by execute. Anybody has an idea on what is wrong and what
to do about it?

The final INTO clause should be outside the string, like this:

EXECUTE 'INSERT INTO '||tablename||' ('||fields||') VALUES
('||vals||') RETURNING currval('''||seqname||''')' INTO newid

Note the placement of the last quote.

HTH,

Best regards,
--
gurjeet[.singh]@EnterpriseDB.com
singh.gurjeet@{ gmail | hotmail | indiatimes | yahoo }.com

EnterpriseDB http://www.enterprisedb.com

Mail sent from my BlackLaptop device

pgsql-general by date:

Previous
From: "Fernando Moreno"
Date:
Subject: Re: syntax error with execute
Next
From: Brian Cox
Date:
Subject: conditional alter table