ORACLE找回update、delete过的数据

select r.FIRST_LOAD_TIME,r.* from v$sqlarea r order by r.FIRST_LOAD_TIME desc ;

--查询出有很多操作表的SQL语句,找出你操作过的SQL语句
 update SECURITY_PORTRAIT_REPORTING t
   set t.time = to_date('2017/12/26 12:53:31', 'yyyy-mm-dd hh:mi:ss')

--此时。将2018-05-30/18:14:44之前的数据写入新表t_table_recove中
 create table t_table_recove --新表
 as
 select * from SECURITY_PORTRAIT_REPORTING--你操作的那张表 
 as of timestamp to_timestamp('2018-05-30/18:14:44','yyyy-mm-dd hh24:mi:ss');

--然后清空原来表(SECURITY_PORTRAIT_REPORTING)中的数据
 delete from SECURITY_PORTRAIT_REPORTING ;
 
--再将新表t_table_recove中的数据写入到原来表(SECURITY_PORTRAIT_REPORTING)中
 insert into SECURITY_PORTRAIT_REPORTING(select * from t_table_recove);
 
--最终数据已恢复2018-05-30/18:14:44之前,即:你操作之前,删除新表t_table_recove即可
 drop table t_table_recove

笔者原来在工作中不小心操作过生产库的数,数据找回用的就是此方法,希望该方法对读者能起到实质性的帮助。

猜你喜欢

转载自blog.csdn.net/u013199013/article/details/81256488