Thread: Problem with returning setof record
Hello, Here is a simple function I created for a test. create function ttt() returns setof record as ' declare r record; begin for r in select * from utilisateurs.menus loop return next r; end loop; return; end; ' language 'plpgsql'; When I try to use it, it returns to me : select ttt();set-valued function called in context that cannot accept a set : PL/pgSQL function "ttt" line 5 at return next Anyone has an idea ? Best regards, Patrice OLIVER
oliverp21@free.fr wrote: > Hello, > > Here is a simple function I created for a test. > > create function ttt() returns setof record as ' > When I try to use it, it returns to me : > > select ttt(); > set-valued function called in context that cannot accept a set > : PL/pgSQL function "ttt" line 5 at return next > > Anyone has an idea ? You need to treat it like a table: SELECT * FROM ttt(); Also, I'm not sure you can return a setof anonymous record types (unless you can specify the structure in the select). Try CREATE FUNCTION...RETURNS SETOF utilisateurs.menus If there's no appropriate table you can use CREATE TYPE to create a structure. -- Richard Huxton Archonet Ltd