Re: Function Issue!
| От | Tom Lane |
|---|---|
| Тема | Re: Function Issue! |
| Дата | |
| Msg-id | 6771.1092879369@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | Function Issue! (Theo Galanakis <Theo.Galanakis@lonelyplanet.com.au>) |
| Список | pgsql-sql |
Theo Galanakis <Theo.Galanakis@lonelyplanet.com.au> writes:
> Can anyone tell me what is wrong with the function below ?
> CREATE OR REPLACE FUNCTION "public"."theo_test2" () RETURNS OPAQUE AS'
> BEGIN
> declare curr_theo cursor for select * from node_names;
> fetch next from curr_theo;
> close curr_theo;
> END;
> 'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY DEFINER;
The DECLARE has to go before the BEGIN:
CREATE OR REPLACE FUNCTION "public"."theo_test2" () RETURNS OPAQUE AS'
DECLARE curr_theo cursor for select * from node_names;
BEGIN fetch next from curr_theo; close curr_theo;
END;
'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY DEFINER;
I think you are missing an OPEN step too, and the FETCH syntax is wrong
for plpgsql. Read the plpgsql doc section about using cursors --- it
is not at all identical to what you do in plain SQL.
regards, tom lane
В списке pgsql-sql по дате отправления: