java造访oracle数据库,,在for循环代码中,如果漠视关闭createstatment或preparedstatement建立的连接,将出现:ORA-01000差错。
Caused by: java.sql.sqlException: ORA-00604: 递归 sql 级别 1 出现错误
ORA-01000: 超出打开游标的最大数
ORA-01000: 超出打开游标的最大数
背景知识:
oracle中每次应用用createstatment或preparedstatement语句,都将打开一个游标,所以单纯增
加oracle中打开游标数目不是解决问题的办法。
问题解决:
1:首先定位是那些语句打开的游标过大。
履行以下语句:
select * from v$open_cursorwhere user_name = 'tech';
<tech为username>
2:从上面的查找结果的sql_text字段中,找到sql语句,再去java代码中定位履行这些语句的代码, 添加PreparedStatement或Statement类的close法子。