数据库插入5000行,第二天就事务回滚了,减少了2000行,怎么回事呢?如何解决呀?

解决方案 »

  1.   

     当然有commit(),现在我程序是每插入一条,就提交一次事务.
      

  2.   

    当然有commit(),现在我程序是每插入一条,就提交一次事务[/size][
      

  3.   

    你都commit了,还能回滚?
    一经commit的数据将是永久不变,除非你更新和删除.不然就谈不上commit咯.
      

  4.   

    不是呀,那事实上我查日志的时候,有大量DELETE操作,我程序没有delete操作,其它用户也不知道密码的
      

  5.   

    我现在除了事务回滚所造成的DELETE原因之外,都想不到有什么办法了?
      

  6.   

    DELETE 可能来源其他的JOB 调用啊,或者是应用在做这个操作吧。总之COMMIT 后不可能会自己回滚的,要么全都回滚,不会只回滚2000条的。
      

  7.   

    TO 楼上的:
    现在问题就是我程序插入5000行,已经COMMIT提交事务了,当天查的时候是5000行的,第二天查询的时候就只有3000行数据,而且我查询日志的时候发现有DELETE操作,但我程序肯定是没有delete的,这种情况已经出现6天了,所以现在不知是什么原因。
      

  8.   

    to limeihanto163
    怎么查询其它JOB调用?
      

  9.   

    如果你的程序没有写delete语句,那你可以保证没有其他的程序调用这张表做删除操作吗?
      

  10.   

    应该是后台语句中包含的,你可以选择表名,右键找个referenced by 找到调用这张表的存储过程及试图等
      

  11.   


    Oracle 提交之后不可能回滚。 这种delete 肯定是事务删除掉的,如果每天都有,检查下任务。 如果找不到就对该表做审计,查是谁操作了。 
      

  12.   

    开审计吧,commit之后不可能回滚的…
      

  13.   

    你想办法把你的sql语句打到你的控制台上,要么去日志找到这个delete sql语句,去你的程序中找找看,哪个方法中写了这个sql,就应该大概知道它执行了什么操作