On Fri, May 30, 2008 at 9:25 PM, A B <[EMAIL PROTECTED]> 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, -- [EMAIL PROTECTED] [EMAIL PROTECTED] gmail | hotmail | indiatimes | yahoo }.com EnterpriseDB http://www.enterprisedb.com Mail sent from my BlackLaptop device