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

How to pass a Ref Cursor as an argument to a Stored Procedure?

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

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

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

程序和游标是这样写的

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;

提前致谢。

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

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

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