0
我有一個存儲過程如下,當我執行這個過程時,每次在遠程服務器中增加一個遊標。如何解決這個問題。ORACLE中的最大遊標超過數據庫鏈接
create or replace function transactionaldatarecovery
(i_tablename in varchar2)
return varchar2
as
v_Num Number(3):=0;
v_SQLStmt Varchar2(2000);
ret_status Varchar2(100);
begin
v_sqlstmt := 'insert into '||i_tablename||
' select * from '||i_tablename||'@RECY_DBLINK a '||
' where not exists(select 1 '||
' from '||i_tablename||' b'||
' where B.sno = A.sno' ;
Execute immediate v_SQLstmt;
return 'Success';
end transactionaldatarecovery;
是的,現在我得到了解決方案。每當光標在遠程服務器中打開時,都會訪問數據庫鏈接。當我們用ALTER語句關閉數據庫鏈接,然後Cursor正在關閉 – user3129868
ALTER是一個DDL語句,並在執行前進行提交。你可以嘗試只做COMMIT,並檢查打開的光標是否被炸。 – vav