我必须编写一个通过数据库链接调用远程过程的存储过程。此过程返回一个游标。当我尝试遍历此游标时,我得到 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;