JDBC連接時,出現的錯誤ORA-00604

一下錯誤一般會出現在批量處理數據的過程中:

錯誤結果:

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();//此處必須手動給它關掉,不然、批處理時就該出現上述問題了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章