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