CREATE TABLE table_1 (c1 varchar(10)); INSERT INTO table_1 SELECT 'some text1'; INSERT INTO table_1 SELECT 'some text2'; select * from table_1
CREATE OR REPLACE FUNCTION myfunc(refcursor) RETURNS SETOF refcursor AS $$ BEGIN OPEN $1 FOR SELECT * FROM table_1; RETURN NEXT $1; END; $$ LANGUAGE plpgsql;
-- need to be in a transaction to use cursors. BEGIN; SELECT * FROM myfunc('a'); FETCH ALL FROM a; COMMIT;