利用oracle闪回,将修改的字段还原

问题

公司的表被清空了,重新恢复的时候导致中文的字段乱码了。
想要把乱码的字段修改回来,想到了回闪,出问题的时间之前的数据。然后通过回闪的数据去更新现在乱码的字段

具体实现

数据表:person

id name create_time
1 灏忛緳濂? 2018-01-13 09:00:00
2 ?1y 2018-01-03 09:00:00

1.回闪

select id,name,create_time from person
as of timestamp  
to_timestamp('2021-03-12 08:59:00','yyyy-mm-dd hh24:mi:ss')

2.更新

update person
set name=(select  name from 
(select id,name,create_time from person
as of timestamp  
to_timestamp('2021-03-12 08:59:00','yyyy-mm-dd hh24:mi:ss')) e where e.id=person.id
and e.create_time = person.create_time
)
where person.create_time>=to_date('2018/01/01','yyyy/mm/dd')
and person.create_time<to_date('2018/02/01','yyyy/mm/dd')

你可能感兴趣的:(经验之谈)