Script :
DROP TABLE table_pgsql2;
CREATE TABLE table_pgsql2 (col text);
INSERT INTO table_pgsql2 VALUES ('Delhi');
INSERT INTO table_pgsql2 VALUES ('Chicago');
INSERT INTO table_pgsql2 VALUES ('Austin');
INSERT INTO table_pgsql2 VALUES ('Kolkata');
INSERT INTO table_pgsql2 VALUES ('Ontario');
CREATE or replace FUNCTION func_refcursor2(refcursor, refcursor,
refcursor) RETURNS SETOF refcursor AS $$
BEGIN
OPEN $1 FOR SELECT * FROM table_pgsql1;
RETURN NEXT $1;
OPEN $2 FOR SELECT * FROM table_pgsql2;
RETURN NEXT $2;
OPEN $3 FOR SELECT ename FROM emp;
RETURN NEXT $3;
END;
$$LANGUAGE plpgsql;
These record sets can now be acccsed one at a time with Hetch
statment
SELECT * FROM func_refcursor2('rc1', 'rc2',
'rc3'); FETCH 3 FROM rc1; FETCH 3 FROM rc2; FETCH 3 FROM rc3;