首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打开的游标太多

问打开的游标太多
EN

Stack Overflow用户
提问于 2020-05-12 14:57:22
回答 1查看 408关注 0票数 0

使用JUNIT,我多次调用存储过程java端(比如说10次)。在一些调用(假设7次)之后,我得到了一个java.sql.SQLException: ORA-01000: too many cursors open

我在plsql脚本中有相同数量的Oracle端测试:当我调用这个过程10次或20次时,我没有问题,我使用的所有游标在我使用它们之后都是关闭的。

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

在Java端,我使用一条语句调用该过程并获取resultSet:

代码语言:javascript
复制
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();

execute命令肯定会发生异常。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2020-05-12 15:07:11

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

这是Oracle中经常出现的错误,java.sql.SQLException: - ORA-01000: maximum open cursors exceeded中已经对此进行了详细说明

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61745626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档