当我们在开发的过程,经常碰到由于不小心误删除表里重要的数据,这时候你不需要着急,从oracle9i开始引用了闪回的概念,通过网上找资料,大概有两种方法,一种方法是通过scn 找回,另外一种是可以通过时间来找回,仅献给那些和我一样在开发一线的朋友,希望对你们有所帮助
具体的语法如下:
--方法一:通过scn编号来恢复,scn其实就是通过timestamp转换过来的编号,每隔一段时间scn是会变的,而且只增不减
select timestamp_to_scn(to_timestamp('2011-02-21 3:00:00','YYYY-MM-DD HH:MI:SS')) from dual; --转换为scn
insert into tgkobjrela select * from hs_passport as of scn 12929941968; --根据scn编号恢复数据
方法二:根据时间来恢复数据
insert into SELECT * FROM tgkobjrela AS OF TIMESTAMP TO_TIMESTAMP('2011-02-21 15:00:00', 'YYYY-MM-DD HH24:MI:SS') where pobjid = 1; --tgkobjrela 是表名,pobjid 是tgkobjrela的字段名,这里可以用作恢复的条件