Orcale恢复delete误删除的数据
orcal的删除有3种:delete、truncate、drop。
delete可以手动提交和回滚,且可以使用where;而truncate、drop执行即对表数据进行了修改,且不能使用where。
delete、truncate只删除表数据;而drop删除表数据和表结构。
所以删除表中某些数据多用delete,有时候delete误删除某些数据需要恢复。
例如:误删sv为'2021-04-21 17:12:28'的2条数据
使用 select * from 表名 as of timestamp to_timestamp('删除时间','yyyy-mm-dd hh24:mi:ss') 找到删除的数据
我知道我是11:29删除的,timestamp to_timestamp('删除时间','yyyy-mm-dd hh24:mi:ss') 中的【删除时间】不一定要特别精准,可以比实际删除时间小,但是要确定在你给定的时间有你想恢复的数据。且这个时间不能大于当前时间,不然会报【ORA-08186: invalid timestamp specified】的错,因为你给了一个未来时间。
查到数据后,通过where筛选数据插入到表中即可。