一.FLASHBACK QUERY
--闪回到15分钟前
select * from table_name as of timestamp (systimestamp - interval '15' minute) where ......
这里可以使用DAY、SECOND、MONTH替换minute,例如:
SELECT * FROM table_name AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '2' DAY) where ......
--闪回到某个时间点
select * from table_name as of timestamp to_timestamp ('2013-01-05 16:18:57.845993', 'YYYY-MM-DD HH24:MI:SS.FF') where ......
--闪回到两天前
select * from table_name as of timestamp (sysdate - 2) where.........
实例:
insert into table_name select * from table_name as of timestamp (systimestamp - interval '15' minute) where code = 'XXX' minus select * from table_name where code = 'XXX';
二.FLASHBACK DROP
1.如果源表未重建
flashback table orders to before drop;
2.如果源表已经重建,可以使用rename to子句
flashback table order to before drop rename to order_old_version;
三.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('2013-01-05 01:15:25','YYYY-MM-DD HH24:MI:SS');