Use
TYPE cursor_type IS REF CURSOR;
or a strongly typed cursor:
CREATE PACKAGE SCHEMA_NAME.PACKAGE_NAME
AS
TYPE Table_Name_Cursor IS REF CURSOR RETURN SCHEMA_NAME.TABLE_NAME%ROWTYPE;
-- You said this does not work.
-- PROCEDURE get_Weakly_Typed_Cursor (
-- out_cursor OUT SYS_REFCURSOR
-- );
PROCEDURE get_Strongly_Typed_Cursor (
out_cursor OUT Table_Name_Cursor
);
END;
/
CREATE PACKAGE BODY SCHEMA_NAME.PACKAGE_NAME
AS
PROCEDURE get_Strongly_Typed_Cursor (
out_cursor OUT Table_Name_Cursor
)
AS
BEGIN
OPEN out_cursor FOR
SELECT * FROM SCHEMA_NAME.TABLE_NAME;
END;
END;
/
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…