方法名:
public boolean delete(Integer OrderId)
   {
   ResultSet Reset =null;
   boolean  IsDel = false;
   try
   { 
   pstmt_OrderId=SchemaConn.prepareStatement("select * from "+TabName_EtlSchema+" where order_id= ? ",ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
   pstmt_OrderId.setInt(1, OrderId);
   Reset=pstmt_OrderId.executeQuery();
   System.out.println("测试:断点");
   while(Reset.next())
   {
   System.out.println(Reset.getString("etlname"));
   //Reset.deleteRow();
   //IsDel=Reset.rowDeleted();
   }
   Reset.close();  
   
   }
   catch (Exception e)
   {
   System.out.println("TbEtlSchema.delete(OrderId),异常为:"+e.getMessage());  
   }
   return IsDel;
   }目的是先判断数据是否存在,如果存在就删除。
测试:断点
XXX名称                                       
TbEtlSchema.delete(OrderId),异常为:对只读结果集的无效操作: deleteRow,在select 加入for update  结果提示问题为TbEtlSchema.delete(OrderId),异常为:ORA-01002: fetch out of sequence,连设置的断点都没有到,
是哪的问题啊

解决方案 »

  1.   

    是不是ORACLE 的驱动不支持 可更新的ResultSet 对象啊
      

  2.   

    pstmt_OrderId=SchemaConn.prepareStatement("select * from "+TabName_EtlSchema+" where order_id= ? ",ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 改成
    pstmt_OrderId=SchemaConn.prepareStatement("select * from "+TabName_EtlSchema+" where order_id= ? "); 要么就是你数据库权限不够
      

  3.   

    结果集打出来是没问题的,
    我在使用  Reset.deleteRow(); 
     的时候出的问题。