用java写的对oracle进行update操作,但是为什么总会出游标用尽的情况啊数据库里装的是全国的数据,要对32个省的数据作UPDATE,每个省要跑160多个SQL语句这些语句都是放在STRING[]里的请高人指点一下

解决方案 »

  1.   

    public void wash(String aab301,String aae043)
    {

    for(int i =0;i<new Integer(DBinfo.length2).intValue();i++)
    {
    try{
    DBLogger.loggerpre(aab301,aae043,DBinfo.ID[i],DBinfo.ID_SECOND[i]);
    ps = con.prepareStatement(DBinfo.WASHSQL[i]);
     int num2 = ps.executeUpdate();
     ps.close();

     if(num2<0||PreparedStatement.EXECUTE_FAILED==3)
     {
     con.rollback();
     //DBLogger.logger("2",DBinfo.WASHSQL[i]);
     }
     else
     {
    con.commit();
      //DBLogger.logger("1","");
     }
     

    logger.debug("已清洗了"+i+"条");
    }catch(Exception e){
    e.printStackTrace();
    //DBLogger.logger("3","语法错误");
    }
    }
      

  2.   

    换个用法如何PreparedStatement a;
    a =con........for(int i =0;i<new Integer(DBinfo.length2).intValue();i++)
    {a.addBatch(DBinfo.WASHSQL[i]);
    }
    a.executeBatch();
    a.clearBatch()
    a.close()
      

  3.   

    如果同时操作大量sql,建议用批。
      

  4.   

    但是这样的话,要是有一条语句没成功,要回滚的话
    那undo表能放下这么多内容吗?