创建函数返回游标:
CREATE or REPLACE FUNCTION fun_cursor( in v_p1 int,in v_p2 int, refcursor, refcursor)
RETURNS SETOF refcursor AS $$
BEGIN
OPEN $3 FOR SELECT * FROM users where u_type = v_p1;
RETURN NEXT $3;
OPEN $4 FOR SELECT * FROM users where u_type = v_p2;
RETURN NEXT $4;
END;
$$ LANGUAGE plpgsql;
客户端调用:
BEGIN;
SELECT * FROM fun_cursor(1,2,'a', 'b');
FETCH ALL FROM a;
FETCH ALL FROM b;
COMMIT;
No Leanote account? Sign up now.