-1

What is the alternate of sys_refcursor.

After 12c upgrade, the resultset of sys_refcursor is unrecognizable by mulesoft/tibco. Reading it as null

Maheswaran Ravisankar
  • 17,652
  • 6
  • 47
  • 69
rajan.sngh
  • 453
  • 2
  • 5
  • 17

2 Answers2

1

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;
/
MT0
  • 143,790
  • 11
  • 59
  • 117
0

You can define your own ref cursor type:

TYPE my_ref_cursor_type is REF CURSOR;
v_cursor my_ref_cursor_type;

But it would only make sense to do that if using a very old version of Oracle that didn't have SYS_REFCURSOR!

Tony Andrews
  • 129,880
  • 21
  • 220
  • 259