事务提交前CURSOR不会关闭?
下面是简化后的代码片段:   
 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               
             针对上面这样的程序逻辑有没有办法回避上述问题?
------解决方案--------------------把transaction放入for循环,每次循环算作一个事务
------解决方案--------------------试试batchUpdate
------解决方案--------------------参考一下   
 http://www.blogjava.net/snoopy/archive/2005/01/27/744.html     
 尝试在for循环外创建Statement和PreparedStatement 
------解决方案--------------------conn.close 放到循环外 ?