各位大侠,问题是这样的,就是经常遇到需要写procedure用到远程数据库中的数据,然后返回一个游标(查询结果),目前的做法是用DBLINK将远程的数据拉到本地数据库,然后在做处理,如果数据量非常大的话就感觉不行,我想是不是有办法将过程建在远程DB上,然后调用,将结果返回到本地,请各位大侠指点

解决方案 »

  1.   

    如果你在远程数据库有权限,可以将procedure建立在远程库上,然后在本地调用该远程procedure,获取结果集。
      

  2.   

    也是可以的
    存储过程建在远程数据库user_name用户下
    create or replace procedure getRec(o out sys_refcursor) is
    begin
      open o for select * from your_table;
    end;如在sqlplus中调用远程数据库的存储过程
    sql>var c refcursor;
    sql>exec user_name.getRec@dblink_name(:c);
    sql>print c;