一下错误一般会出现在批量处理数据的过程中:

错误结果:

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();//此处必须手动给它关掉,不然、批处理时就该出现上述问题了