环境:oracle10g for windwosxp

解决方案 »

  1.   

    使用flashback,请参考:
    http://topic.csdn.net/u/20090204/22/327149ad-19ed-4ab5-8e50-6fa0c67a996b.html
      

  2.   

    因人员的误操作,把导出的数据搞成导入的,把原来的数据删除了,用flashback,时间默认是一天,可这儿时间已超过一天了,还有什么办法。
      

  3.   

    flashback 有没有时间限制,若删除后隔了几天才flashback,行不行。
      

  4.   

    应该找不回来了,除非你有数据库备份了。。去问问DBA吧要是误删除表,我可以帮你找回来
      

  5.   

    先做个闪回查询试试:SELECT * FROM yourtable
    AS OF TIMESTAMP TO_TIMESTAMP('2009-02-12 00:00:00', 'YYYY-MM-DD HH24:MI:SS');闪回查询的时间由UNDO_RETENTION来确定,单位是秒
      

  6.   

    1,求当前时间
    SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;2,删除数据的表 - CM_EMPLOYEE_MB
    SELECT * 
    FROM CM_EMPLOYEE_MB AS OF TIMESTAMP TO_TIMESTAMP('2008-08-21 18:21:49', 'YYYY-MM-DD HH24:MI:SS')
    WHERE SEX = 'F';(这种方式能得出删除的数据。)3,回复已删除数据
    INSERT INTO CM_EMPLOYEE_MB
    (SELECT * 
    FROM CM_EMPLOYEE_MB AS OF TIMESTAMP TO_TIMESTAMP('2008-08-21 18:21:49', 'YYYY-MM-DD HH24:MI:SS')
    WHERE SEX = 'F');
      

  7.   

    当然有可能因为undo_retention过小以及undo tablespace比较小造成已经过期而无法使用上面的闪回这时候如果是archivelog模式,你还可以考虑使用logmnr来分析日志.这里指的是你使用dml来删除的数据.
    如果被drop掉了,那直接到recycle中去拿吧.