Thread: Select Command in Procedures
Dear all,
I am able to execute command successfully through CLI or pgAdmin .
create table user_news_new as select record_id,field_name,field_value,news_date from user_news where field_name in ('SOI','RelLoc','Description','Heading','news_date') and field_value != '' ;
But I don't know when I put this command in a procedure, it shows error :
CREATE FUNCTION user10() RETURNS void AS'
DECLARE
BEGIN
create table user_news_new as select record_id,field_name,field_value,news_date from user_news where field_name in ('SOI','RelLoc','Description','Heading','news_date') and field_value != '' ;
END;
' LANGUAGE 'plpgsql';
Error :
globe=# CREATE FUNCTION user10() RETURNS void AS'
globe'# DECLARE
globe'# BEGIN
globe'# create table user_news_new as select record_id,field_name,field_value,news_date from user_news where field_name in ('SOI','RelLoc','Description','Heading','news_date') and field_value != '' ;
globe'# END;
globe'# ' LANGUAGE 'plpgsql';
ERROR: syntax error at or near "SOI"
LINE 4: ...ue,news_date from user_news where field_name in ('SOI','RelL...
^
Please help as I stuck with this issue.
Thanks & Regards
Adarsh Sharma
I am able to execute command successfully through CLI or pgAdmin .
create table user_news_new as select record_id,field_name,field_value,news_date from user_news where field_name in ('SOI','RelLoc','Description','Heading','news_date') and field_value != '' ;
But I don't know when I put this command in a procedure, it shows error :
CREATE FUNCTION user10() RETURNS void AS'
DECLARE
BEGIN
create table user_news_new as select record_id,field_name,field_value,news_date from user_news where field_name in ('SOI','RelLoc','Description','Heading','news_date') and field_value != '' ;
END;
' LANGUAGE 'plpgsql';
Error :
globe=# CREATE FUNCTION user10() RETURNS void AS'
globe'# DECLARE
globe'# BEGIN
globe'# create table user_news_new as select record_id,field_name,field_value,news_date from user_news where field_name in ('SOI','RelLoc','Description','Heading','news_date') and field_value != '' ;
globe'# END;
globe'# ' LANGUAGE 'plpgsql';
ERROR: syntax error at or near "SOI"
LINE 4: ...ue,news_date from user_news where field_name in ('SOI','RelL...
^
Please help as I stuck with this issue.
Thanks & Regards
Adarsh Sharma
On Thu, Feb 03, 2011 at 02:26:10PM +0530, Adarsh Sharma wrote: > globe=# CREATE FUNCTION user10() RETURNS void AS' > globe'# DECLARE > globe'# BEGIN > globe'# create table user_news_new as select > record_id,field_name,field_value,news_date from user_news where > field_name in ('SOI','RelLoc','Description','Heading','news_date') > and field_value != '' ; > globe'# END; > globe'# ' LANGUAGE 'plpgsql'; > ERROR: syntax error at or near "SOI" > LINE 4: ...ue,news_date from user_news where field_name in ('SOI','RelL... > ^ please note that you used ' to delimit both function body, and strings in function body. so when parser hits the ' character before "SOI" - it assumes it to be end of function! simply use $$ quotes around function body, and you should be fine. Best regards, depesz -- Linkedin: http://www.linkedin.com/in/depesz / blog: http://www.depesz.com/ jid/gtalk: depesz@depesz.com / aim:depeszhdl / skype:depesz_hdl / gg:6749007