Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql ORACLE中数据库链接超过的最大游标数_Sql_Oracle_Plsql_Oracle10g_Plsqldeveloper - Fatal编程技术网

Sql ORACLE中数据库链接超过的最大游标数

Sql ORACLE中数据库链接超过的最大游标数,sql,oracle,plsql,oracle10g,plsqldeveloper,Sql,Oracle,Plsql,Oracle10g,Plsqldeveloper,我有一个如下的存储过程,当我执行这个过程时,在远程服务器中每增加一个游标。如何解决这个问题 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

我有一个如下的存储过程,当我执行这个过程时,在远程服务器中每增加一个游标。如何解决这个问题

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;

运行函数后是否提交?它应该在远程数据库上释放打开的光标。

是的,现在我得到了解决方案。每次在远程服务器中打开游标时访问ind DBlink时。当我们用ALTER语句关闭数据库链接时,游标是ClosingALTER,它是一个DDL语句,并在执行之前进行提交。您可以尝试只进行提交,并检查打开的游标是否被触发。