gpt4 book ai didi

java - 打开的游标过多

转载 作者:行者123 更新时间:2023-12-01 16:47:34 26 4
gpt4 key购买 nike

使用 JUNIT,我多次调用 Java 端的存储过程(假设 10 次)。经过一些调用(比方说 7 七次),我遇到了 java.sql.SQLException: ORA-01000: Too much Cursors open

我在 plsql 脚本中对 Oracle 端进行了相同数量的测试:当我调用此过程 10 次或 20 次时没有问题,我使用的所有游标在使用后都被关闭。

所以问题似乎是java方面的,尽管错误是一个oracle代码(???)。

Java 端,我用语句调用过程并获取结果集:

cstmt = c.prepareCall("CALL myStoredProcedure(?,?,?,?)");
cstmt.setDate(1, sDate);
cstmt.setString(2, myVar);
cstmt.setString(3, myVar2);
cstmt.registerOutParameter(4, java.sql.Types.ARRAY, "My_TYPE_ITEMS");
cstmt.execute();

...

rs.close();
cstmt.close();

异常肯定发生在执行命令上。

有什么想法吗?

最佳答案

PL/SQL 可能会自动关闭游标,而 JDBC 可能不会这样做:这可以作为一个解释。也可能是 Oracle OPEN_CURSORS 参数太低。

这是 Oracle 中的一个常见错误,并且已在 java.sql.SQLException: - ORA-01000: maximum open cursors exceeded 中进行了详细解释。

关于java - 打开的游标过多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61745626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com