bajopalabra.ar escribió: > el tema de la devolución de varios lotes > de última, lo puedo llegar a manejar en otra capa
Puedes retornar SETOF refcursor en una función, y de cada cursor obtener un resultado diferente. Prueba algo así: alvherre=# create or replace function refcursors () returns setof refcursor language plpgsql as $$ declare cursor1 refcursor; cursor2 refcursor; begin open cursor1 for values (1), (2), (3); return next cursor1; open cursor2 for values ('foo'), ('bar'), ('baz'); return next cursor2; end; $$ ; CREATE FUNCTION alvherre=# begin; BEGIN alvherre=# select * from refcursors(); refcursors -------------------- <unnamed portal 3> <unnamed portal 4> (2 filas) alvherre=# fetch all from "<unnamed portal 3>"; column1 --------- 1 2 3 (3 filas) alvherre=# fetch all from "<unnamed portal 4>"; column1 --------- foo bar baz (3 filas) alvherre=# commit; COMMIT -- Alvaro Herrera http://www.amazon.com/gp/registry/CTMLCN8V17R4 "In a specialized industrial society, it would be a disaster to have kids running around loose." (Paul Graham) -- TIP 7: no olvides aumentar la configuración del "free space map"