when I run 'select 1count(*) from table' in my postgres 8.4 installation, I
get the exact same error message.  Assuming the '1count()' function does
exist, perhaps you need to full qualify it with a schema name?

It looks to me like the query you are passing to the procedure is invalid
and is generating the error.  Perhaps the 1 in front of count(*) is a typo?

On Wed, Mar 9, 2011 at 1:55 PM, Uwe Bartels <uwe.bart...@gmail.com> wrote:

> Hi,
>
> I'm trying to run an execute with a dynamic sql command within a function.
> I need a clean exception handling here, but my version does not work
> somehow.
>
> I want to trap a possible syntax error and write the error code, error
> message and the sql into a table.
>
> the function looks similar to this, I cut out the unimportant pieces.
>
> CREATE OR REPLACE FUNCTION report_process(p_sql text)
>   RETURNS integer AS
> $BODY$
> DECLARE
>     l_state smallint;
>     l_message text;
> BEGIN
>
>     l_state=0;
>     begin
>         execute 'create table result_'||p_id||' as '||p_sql;
>         exception when others then
>             l_state=-3;
>             l_message:='Error executing sql sql error code: %, sql error
> message: %, sql: %',SQLSTATE,SQLERRM,l_sql;
>     end;
>
>     update "cache"
>     set c_date=now(), c_state=l_state, c_message=l_message
>     where c_id=p_id;
>
>     return 0;
> END;
> $BODY$
>   LANGUAGE plpgsql VOLATILE SECURITY DEFINER
>   COST 100;
>
>
> This is the error message when I call the function
> select report_process('select 1count(*) from event_log_day'::text);
>
>
> ERROR:  syntax error at or near "("
> LINE 1: ...e table result_9 as select 1count(*) from d...
>                                                              ^
> QUERY:  create table result_9 as select 1count(*) from event_log_day
> CONTEXT:  PL/pgSQL function "report_process" line 31 at EXECUTE statement
>
> ********** Error **********
>
> ERROR: syntax error at or near "("
> SQL state: 42601
> Context: PL/pgSQL function "report_process" line 31 at EXECUTE statement
>
> Any help is appreciated.
>
> best regards,
> Uwe
>

Reply via email to