例如,要查询tb_user 表在2013-6-24 23:59:00的状态,可以使用如下语句:
select * from tb_user as of timestamp to_timestamp('2013-6-24 23:59:00', 'yyyy-mm-dd HH24:mi:ss');
oracle默认的查看时间是10天,超过10就报ora-08180错误。
知道了表在某一时刻的表之后,我们就可以很容易的把表恢复到某一时刻的样子了,例如我们在2013-6-24 23:59:00这个时候删除了tb_user 表中的3条记录,之后我又想把它恢复,那应该如何恢复呢?利用查询闪回我们可以这样操作:
方法一:
第一步,把当前表中的数据全删了:delete from tb_user ;
第二步,我们通过查询闪回把2013-6-24 23:59:00这个时点之前的数据拿出来然后插入到当前表中,调用语句如下:
insert into tb_user select * from tb_user as of timestamp to_timestamp('2013-6-24 23:59:00', 'yyyy-mm-dd HH24:mi:ss');