2012-12-11 30 views
1

我必須編寫一個存儲過程,它通過db鏈接調用遠程過程。此過程返回一個遊標。當我嘗試迭代這個遊標時,我得到ORA-01001:無效光標錯誤。我在一些論壇上看過,只是不允許通過數據庫鏈接訪問光標,但我並不相信這一點。任何人都知道如何解決它?這裏重要的是我不能修改現有的遠程方法。在Oracle中通過db鏈接訪問光標

下面

是我的過程的代碼:遠程方法的

declare 
    TYPE generic_cursor IS REF CURSOR; 
    refCursorValue generic_cursor; 
field1 [email protected]_db_link%type; 
begin 

    [email protected]_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; 

回答