【问题标题】:Accessing cursor over db link in Oracle在 Oracle 中访问 db 链接上的光标
【发布时间】:2012-12-11 14:47:33
【问题描述】:

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

【问题讨论】:

    标签: oracle cursor dblink


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      • 2018-11-08
      • 1970-01-01
      • 2023-03-25
      相关资源
      最近更新 更多