ORA-0100: Maximum open cursors exceeded
当我们无法更改游标数量时,最好的避免方法是什么?
有没有比以下更好的方法:
Connection connection = DriverManager.getConnection(/* Oracle Driver */);
Statement st = null;
st = connection.createStatement();
for (/* a lot of iteration with counter */) {
st.executeUpdate(insertSql);
if ( counter % 500 == 0) {
st.close();
connection.commit();
st = connection.createStatement();
}
}
哪个方法调用使用游标:toexecuteUpdate
还是 to createStatement
?
我认为这executeUpdate
就是我制作这个计数器的原因。
对于我工作的 Oracle:
select * from v$version;
结果 :
BANNER
----------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production