1

我必须编写一个通过数据库链接调用远程过程的存储过程。此过程返回一个游标。当我尝试遍历此游标时,我得到 ORA-01001:无效游标错误。我在一些论坛上读到,根本不允许通过数据库链接访问游标,但我不相信这一点。有谁知道如何解决它?这里重要的是我不能修改现有的远程方法。

以下是我的程序代码:

declare
  TYPE generic_cursor IS REF CURSOR;
  refCursorValue generic_cursor;  
 field1 table1.column1@my_db_link%type;
begin

  rempote_package.remote_method@my_db_link('33337136','','',refCursorValue);

 loop
      fetch refCursorValue into  field1;      -- here exception is thrown               
      exit when refCursorValue%NOTFOUND;
  end loop;
  close refCursorValue;
end;

远程方法接口如下:

PROCEDURE remoteMethod (p1 IN VARCHAR2,
 p2 IN VARCHAR2,
 p3 IN VARCHAR2,
 rst_data OUT pkg_resultset.generic_cursor)

并且 pkg_resultset.generic_cursor 有以下定义:

 TYPE generic_cursor IS REF CURSOR;
4

1 回答 1

3

据我所知,您不能将引用光标传递到数据库链接上。但你可以通过一张桌子。从 Ask Tom 看这个例子:http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID: 4254116170549

于 2013-01-09T22:16:38.490 回答