刚对一张表AAA中的几条记录进行了delete操作,提交了,马上想把它恢复过来,用闪回查询,
select *  from flashback_transaction_query where tablename ='aaa';结果查出来是没有任何记录,是什么原因?

解决方案 »

  1.   

    select * from tablename as of timestmap SYSDATE-10/1440
      

  2.   

    你开了回收站功能了吗?用这个时间闪回sql试下,可以按照时间查看该表的历史数据
    select * from table as of timestamp TO_TIMESTAMP(’2012-03-16 23:10:17′, ‘YYYY-MM-DD HH:MI:SS’); 
    后面的时间,可以改成你想要查看的时间段,
    查出来的数据就是你那个时间段时表中的所有数据!
      

  3.   

    呵呵 你都提交了 还闪回什么 commit后rollback没用了
      

  4.   

    ORACLE10G有个recyclebin这个是针对DROP操作的还有一个是表闪回这是正对DML操作的是两码事你要分清楚
      

  5.   

    随便问下 我删了一张表的 tj.xy的两行记录并commit
    现在想恢复有没有办法 我试了
    select * from tj.xy as of timestamp TO_TIMESTAMP('2012-12-09 01:00:00','YYYY-MM-DD HH:MI:SS'); 提示ORA-01466: 无法读取数据 - 表定义已更改怎么搞 是不是commit之后再也无法恢复了呢
      

  6.   

    delete 后再进行修改是不能再恢复
    你可以show recyclebin;查看一下
      

  7.   

    好像可以恢复,前提你的闪回要开启了,用select flashback_on from v$database确认一下
      

  8.   

    1.检查是否启用了归档 archive log list;
    2.检查是否启用了flashback database 功能 select flachback_on from v$database;
    3.查询当前的scn select current_scn from v$database;
    4.间数据库回复到scn 的状态 Flashback database to scn .....;