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 по дате отправления: