我开始下面的SQL exception
,我不知道什么是根本原因此异常? 我也关闭dbconnection
和prepared statement
过。 那么有什么问题呢?
java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-01000: maximum open cursors exceeded
ORA-00604: error occurred at recursive SQL level 1
ORA-01000: maximum open cursors exceeded
ORA-01000: maximum open cursors exceeded
下面是我的代码,我使用。 什么错在我的代码?
for (Entry<Integer, LinkedHashMap<Integer, String>> entry : GUID_ID_MAPPING.entrySet()) {
pstatement = db_connection.prepareStatement(PDSLnPConstants.UPSERT_SQL); // create a statement
pstatement.setInt(1, entry.getKey());
pstatement.setString(2, entry.getValue().get(PDSLnPConstants.CGUID_ID));
pstatement.setString(3, entry.getValue().get(PDSLnPConstants.PGUID_ID));
pstatement.setString(4, entry.getValue().get(PDSLnPConstants.SGUID_ID));
pstatement.setString(5, entry.getValue().get(PDSLnPConstants.UID_ID));
pstatement.setString(6, entry.getValue().get(PDSLnPConstants.ULOC_ID));
pstatement.setString(7, entry.getValue().get(PDSLnPConstants.SLOC_ID));
pstatement.setString(8, entry.getValue().get(PDSLnPConstants.PLOC_ID));
pstatement.setString(9, entry.getValue().get(PDSLnPConstants.ALOC_ID));
pstatement.setString(10, entry.getValue().get(PDSLnPConstants.SITE_ID));
pstatement.executeUpdate();
}
} catch (SQLException e) {
getLogger().log(LogLevel.ERROR, e);
} finally {
if (pstatement!= null) {
try {
pstatement.close();
pstatement = null;
} catch (SQLException e) {
getLogger().log(LogLevel.ERROR, e.getMessage(), e.fillInStackTrace());
}
}
if (db_connection!= null) {
try {
db_connection.close();
db_connection = null;
} catch (SQLException e) {
getLogger().log(LogLevel.ERROR, e.getMessage(), e.fillInStackTrace());
}
}