sys_refcursor的替代是什么。
升级12c后,sys_refcursor
无法识别mulesoft/tibco
的结果集。将其读作null
答案 0 :(得分:1)
使用
TYPE cursor_type IS REF 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;
/
答案 1 :(得分:0)
您可以定义自己的引用游标类型:
TYPE my_ref_cursor_type is REF CURSOR;
v_cursor my_ref_cursor_type;
但如果使用没有SYS_REFCURSOR的非常旧版本的Oracle,那么这样做才有意义。