【问题标题】:How to pass a Ref Cursor as an argument to a Stored Procedure? [duplicate]如何将 Ref 游标作为参数传递给存储过程? [复制]
【发布时间】:2018-01-07 23:48:49
【问题描述】:

如何将 Ref 游标作为参数传递给存储过程?

我正在尝试调用一个期望光标作为参数的存储过程。存储过程中使用的光标作为输出参数。存储过程和游标都定义在一个包中。

如何通过游标调用存储过程? 请举例说明

这就是过程和游标的写法。

PACKAGE company
IS

/* Define the REF CURSOR type. */
TYPE curvar_type IS REF CURSOR RETURN company%ROWTYPE;

/* Stored Procedure Impl */
PROCEDURE open_company (curvar_out OUT company.curvar_type) IS
BEGIN
   ...
END;
END package;

提前致谢。

【问题讨论】:

    标签: oracle plsql cursor procedure


    【解决方案1】:

    过程的参数是一个输出参数 - 您不需要将游标传递给过程,因为过程的效果是将游标传递出去(而不是传入)。

    所以,你可以像这样得到输出的光标:

    DECLARE
      cur COMPANY.CURVAR_TYPE;
    BEGIN
      company.open_company( cur );
      -- do something with the cursor.
    END;
    /
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-02
      • 2018-04-04
      • 1970-01-01
      • 2010-10-19
      • 1970-01-01
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      相关资源
      最近更新 更多