下面是简化后的代码片段:transaction begin
for(............){
try{
ps=conn.prepareStatement(....);
rs = stmt.executeQuery();
rs.close();
stmt.close();
stmt = conn.prepareStatement( sql.toString() );
stmt.executeUpdate();
}catch
........
}finally {
stmt.close
conn.close
}
}
transaction commit 问题描述:
commit之前出现了 ORA-01000: maximum open cursors exceeded 异常,
想问是否commit之前所有打开的cursors不会关闭?即使显示调用了close
针对上面这样的程序逻辑有没有办法回避上述问题?
for(............){
try{
ps=conn.prepareStatement(....);
rs = stmt.executeQuery();
rs.close();
stmt.close();
stmt = conn.prepareStatement( sql.toString() );
stmt.executeUpdate();
}catch
........
}finally {
stmt.close
conn.close
}
}
transaction commit 问题描述:
commit之前出现了 ORA-01000: maximum open cursors exceeded 异常,
想问是否commit之前所有打开的cursors不会关闭?即使显示调用了close
针对上面这样的程序逻辑有没有办法回避上述问题?
但要求所有的INSERT必须要在一个事务中
尝试在for循环外创建Statement和PreparedStatement
for(............){
try{
ps=conn.prepareStatement(....);
rs = stmt.executeQuery();
rs.close();
stmt.close();
stmt = conn.prepareStatement( sql.toString() );
stmt.executeUpdate();
}catch
........
}finally {
stmt.close
}
}
transaction commit 问题描述:
commit之前出现了 ORA-01000: maximum open cursors exceeded 异常,
想问是否commit之前所有打开的cursors不会关闭?即使显示调用了close
针对上面这样的程序逻辑有没有办法回避上述问题?前提:上面的东东是firestorm生成的insert方法 我不想改动
大家来整啊 如果改写代码当然可以解决 但我不想做,因为我的数据操作全是FireStorm生成的,不想动了 要是有办法解决我再开帖给100分。 呵呵 :) 说话绝对算数~~~否则不混了