今天更新数据的时候忘了加where条件,所以把整个表的数据都更新了,我通过下面的方法恢复了数据:
1、在v$sqlarea 这视图里面找到你操作那条SQL的时间
select r.FIRST_LOAD_TIME,r.* from v$sqlarea r order by r.FIRST_LOAD_TIME desc ;
2、创建一张新的表,一张临时表, newTableName:新创建的临时表的表名,oldTableName:要恢复数据的表的表名, 时间是通过第一步的FIRST_LOAD_TIME
create table newTableName
as
select * from oldTableName
as of timestamp to_timestamp('2014-09-25/18:26:32','yyyy-mm-dd hh24:mi:ss');
3、验证新的表中是否是自己想要恢复的数据
select * from newTableName;
4、如果通过了第三步的验证,删除想要恢复的表中的数据
delete oldTableName;
5、把新建的表中的数据插入到想要恢复的表中去
insert into oldTableName select * from newTableName;
drop table newTableName