ORA 01000 超出打开游标的最大数 ,偶尔出现 ORA-00604: 递归 SQL 级别 1 出现错误 和 游标的错误,我应该怎么确认问题具体发生在哪里?

2018-01-29 19:07:04 +08:00
 asiufasd
补充主题问题:
为什么我 select count(*) from v$open_cursor;查询出来的打开的游标会大于 show parameter open_cursors;配置的游标数量?设置游标需要重启吗?

我今天要来了代码,代码里有一段是这样:
for (int i = 0; i < list.size(); i++) {
. . .
String sqlQuery = "select * from table_c where timecardid=? or secondcardid=?";
pState_query = connection.prepareStatement(sqlQuery);
pState_query.setString(1, timecardid);
pState_query.setString(2, timecardid);
rs = nc_pState_query.executeQuery();

. . .
}
list 的数据量比较大,我怀疑是因为这里导致的游标溢出。
但是这个问题是在配置 DataGuard 主从备份之后才频繁发生的。对方在测试环境测试后也没有发生异常,所以我也有点拿不准。
写的时候刚刚跟他改小了查询语句的数据,执行成功了,但是我实时执行的 select count(*) from v$open_cursor;确实发现激增,大约 12000 才降下去,我设置的 5000,这个是为什么,打开的游标会超过最大游标还不报错?改变游标需要重启吗?
1867 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/426897

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX