如果事务没有提交的话,可以通过回滚来找回数据,尝试一下
roll back ;

解决方案 »

  1.   

    >>数据库也不是运行在归档模式下半年前也有类似情况,但我同事用Logminer恢复了数据
      

  2.   

    http://spaces.msn.com/yaoyp/blog/cns!AC5FD97B8A549660!588.entry?_c11_blogpart_blogpart=blogview&_c=blogpart#trackback
    logminer就行了
    如果log已经被清了,那就没救了
      

  3.   

    9i以后(包括9i)有Flashback闪回功能可以实现恢复
      

  4.   

    先查看确定数据库最大可以闪回查询的时间段undo_retention(单位秒)
    SQL> show parameter undo_retention;
    确定数据库的状态:undo_management是auto
    show parameter undo_management ;
    然后创建一个存储过程:
    CREATE OR REPLACE PROCEDURE prc_recoveremp IS
    CURSOR c_emp IS
      SELECT * FROM scott.emp;
      v_row c_emp%ROWTYPE;
      BEGIN
      --确定删除操作的时间距离当前时间的时间长度(不超过5天)
        DBMS_FLASHBACK.ENABLE_AT_TIME(SYSTIMESTAMP - INTERVAL '1' DAY);
        OPEN c_emp;
          DBMS_FLASHBACK.DISABLE;
          LOOP
            FETCH c_emp INTO v_row;
            EXIT WHEN c_emp%NOTFOUND;
            INSERT INTO scott.emp  VALUES
            (v_row.EMPNO,v_row.ENAME,...); 
          END LOOP;
        CLOSE c_emp;
      COMMIT;
    END prc_recoveremp;
    最后执行它来进行恢复:
    execute prc_recoveremp;