Oracle误删数据、误修改数据恢复

时间:2022-04-11 07:18:45
select * from com_parameter(表名) as of timestamp TO_TIMESTAMP('2015-08-03 9:00:00','YYYY-MM-DD HH24:MI:SS')
    这条sql语句是用于查找某个表在某个特点的时间点的表数据,假如在9:05分的时候不小心误删了表数据,可以使用这条sql来找回误删之前的数据,
但是要注意,时间不能间隔太长,最好是一个小时或者半个小时以内的,更长的时间我没有试过,各位有兴趣的话可以试试。

这里有两个办法,最简单粗暴的当然就是把现在的表整个清空,然后把查出来的误删前的数据整个覆盖,但是这样做总是会让人感觉心里不踏实,
当然如果是测试数据那就随便搞咯。

第二种办法,也是推荐办法,使用另外一条sql
update a
set a.value=b.value
from table1 a,table2 b where a.id=b.id
这条sql可以将数据库中A表的某列字段,更新到数据库中B表的某列字段,后面的where条件可以省略,如果只更新特定的几行记录,就加上where条件
使用第二种方法可以在较为安全的情况下恢复误删数据,同样的道理,误修改的数据也可以用这个办法恢复