一下错误一般会出现在批量处理数据的过程中:
错误结果:
java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01000: 超出打开游标的最大数
ORA-01000: 超出打开游标的最大数
出错原因:
Java代码在执行conn.createStatement和conn.prepareStatement时,相当于在数据库中打开了个游标cursor,不要在循环中放在这两个方法。
实在要放,也不应出现conn.createStatement().executeQuery(sql); 这个语句:如下
for(...){
resultSet= conn.createStatement().executeQuery(sql); //此种方式Statement 不会及时的关闭
resultSet.close();
}
优化一点:
Statement stmt= conn.createStatement();
resultSet= stmt.executeQuery(sql);
resultSet.close();
stmt.close();//此处必须手动给它关掉,不然、批处理时就该出现上述问题了