【问题标题】:Alternate of sys_refcursorsys_refcursor 的替代品
【发布时间】:2016-02-19 19:55:11
【问题描述】:

sys_refcursor 的替代品是什么。

12c 升级后,sys_refcursor 的结果集无法被mulesoft/tibco 识别。阅读为null

【问题讨论】:

  • 为什么?请问您的实际问题是什么?
  • 12c升级后,sys_refcursor的结果集无法被mulesoft/tibco识别。将其读取为 null
  • @rajan.sngh 那你升级到12c后为什么还要标记11g

标签: sql oracle mule oracle12c tibco


【解决方案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;
/

【讨论】:

    【解决方案2】:

    您可以定义自己的参考光标类型:

    TYPE my_ref_cursor_type is REF CURSOR;
    v_cursor my_ref_cursor_type;
    

    但只有在使用没有 SYS_REFCURSOR 的非常旧版本的 Oracle 时才有意义!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      • 2012-01-25
      • 2015-08-05
      • 2011-01-01
      • 2011-10-24
      • 2011-05-31
      相关资源
      最近更新 更多