当时在使用时有点迷惑,多次测试后找到了一些方法,不说了直接上代码: 存储过程: CREATE OR REPLACE FUNCTION select_team(IN _roleuuid character varying, OUT _code integer, OUT _ref refcursor, OUT _member refcursor) RETURNS record AS $BODY$ declare message_row team_member%ROWTYPE; team_row team%ROWTYPE; begin _code=0; perform * from role where role_uuid=_roleuuid; IF FOUND THEN select * into message_row from team_member where team_member_role_uuid=_roleuuid; IF FOUND THEN open _ref for SELECT * FROM team WHERE team_uuid=message_row.team_member_team_uuid; open _member for SELECT * FROM team_member JOIN role ON team_member.team_member_role_uuid = role.role_uuid and team_member.team_member_team_uuid=message_row.team_member_team_uuid; ELSE _code=121; END IF; ELSE _code=108; END IF; end; $BODY$ LANGUAGE 'p