这段代码是我用来更新数据库的,由另一个函数调用它,可是每次执行到297次就报错,说是“超出游标最大数”,报错的行我已经标出来了,游标数量我设置为300。请朋友帮我看看,我每次使用完PreparedStatement后也及时的关闭了啊,为什么还会报错啊?public String obtainPartNumberObjectInfo(String partnumber,
                                  String tablename, 
                                  String sql_field,
                                  String newvalue, 
                                  String condition,
                                  boolean isUpdatePartNumber, 
                                  String isBorrowed, 
                                  Connection con ) { PreparedStatement pss = null;
PreparedStatement ps_upt = null ;
Statement stmt = null ;
ResultSet rs = null;
String sql = null;
try {
if (isUpdatePartNumber == true) { sql = "select /*+RULE*/"+ sql_field +" from PDMM31A." + tablename + " where PARTNUMBER=?";
pss = con.prepareStatement(sql);
pss.setString(1, partnumber);
rs = pss.executeQuery(); if (isBorrowed.equals("-")) { if (rs.next()) {
String sqlUpt = "update PDMM31A."+ tablename+ " set PROJECTNAME=? , ORIGPROJECT=? where PARTNUMBER=? and ? like ? ";

ps_upt = con.prepareStatement(sqlUpt);//执行297次报错
ps_upt.setString(1, newvalue);
ps_upt.setString(2, newvalue);
ps_upt.setString(3, partnumber);
ps_upt.setString(4, ATTRIBUTENAME);
ps_upt.setString(5, condition);
ps_upt.executeUpdate();
close(ps_upt);

}
}
}……


}catch (Exception e) { e.printStackTrace(); } finally { close( ps_upt ) ;
close(pss);
close(stmt);
close(rs); } return ……;}