首页 > 代码库 > oracle回滚误删并且commit的表

oracle回滚误删并且commit的表

1.恢复到某个时刻

insert into qual_temp_detail select * from qual_temp_detail as of timestamp to_date(2014-12-29 08:30:22, yyyy-mm-dd hh24:mi:ss) 

其中qual_temp_detail是要回滚的数据表名称。 to_date函数的第一个参数是要回滚到的时间点。妈妈再也不怕我手滑了!

 

2. 恢复到15分钟以前

--闪回到15分钟前 select *  from orders  as of timestamp (systimestamp - interval ‘‘15‘‘ minute)  where ...... 这里可以使用DAY、SECOND、MONTH替换minute,例如: SELECT * FROM orders AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL ‘‘2‘‘ DAY) 

 

3.恢复到几天前

--闪回到两天前 select * from orders  as of timestamp (sysdate - 2) where......... 

4. 如果表结构已经变动

/*2.FLASHBACK DROP*/   1.flashback table orders to before drop;     2.如果源表已经重建,可以使用rename to子句:   flashback table order to before drop  rename to order_old_version;   /*3.FLASHBACK TABLE*/   1.首先要启用行迁移:   alter table order enable row movement;   2.闪回表到15分钟前:   flashback table order  to timestamp systimestamp - interval ‘‘15‘‘ minute;     闪回到某个时间点:   FLASHBACK TABLE order TO TIMESTAMP    TO_TIMESTAMP(2007-09-12 01:15:25 PM,YYYY-MM-DD HH:MI:SS AM)

 

oracle回滚误删并且commit的表