2011/8/25 Martín Marqués <martin.marques@xxxxxxxxx>: > CREATE OR REPLACE FUNCTION prueba_cursor(codigo integer, curCursor refcursor) > RETURNS SETOF refcursor AS > $BODY$ > DECLARE > cur alias for $2; > BEGIN > PERFORM mpf.ConstruyeCursorDesdeQuery('cur' ,'SELECT * from > tab1 WHERE field < 11000'); > END; > $BODY$ > LANGUAGE 'plpgsql' VOLATILE > COST 100 > ROWS 1000; > > CREATE OR REPLACE FUNCTION construyecursordesdequery(refcursor, query text) > RETURNS SETOF refcursor AS > $BODY$ > BEGIN > OPEN $1 FOR Select * from tab1 where field < 11000; > RAISE NOTICE '%', $1; > RETURN NEXT $1; > END; > $BODY$ > LANGUAGE 'plpgsql' VOLATILE > COST 100 > ROWS 1000; > > begin; > select * from prueba_cursor4(1, 'h'); > end; you pretty much had it. > select * from prueba_cursor4(1, 'h'); should be > select * from prueba_cursor(1, 'h'); after that, but inside the transaction, you can just do: fetch all from 'cur'; note neither of your functions need to return setof fwict. you are returning one cursor, not a set of them. merlin -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general