专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

oracle删错数据了,要跑路吗,等一下,先抢救一下

ins518 2024-10-15 13:10:37 技术文章 10 ℃ 0 评论

轻舟能过万重山,遇到问题别发慌。说来惭愧,最近出现一次写update语句忘了加where条件,还好连得我本地测试库,不然就嗝屁了。不过万一连得正式库,那咋办呢,于是自己上网搜了一下,有前辈也遇到过,整理如下;

oracle不小心删除数据并且已经提交。

oracle有一个闪回表功能一:

根据时间来恢复:

1、查询数据库当前时间(目的是为了检查数据库时间是否与你电脑时间相近,避免时间不同而将数据恢复到错误时间点)select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

2、查询删除数据时间点之前的数据select * from 表名 as of timestamp to_timestamp('2016-08-11 16:12:11','yyyy-mm-dd hh24:mi:ss');(若没有数据 ,将时间继续提前)

3、恢复数据flashback table 表名 to timestamp to_timestamp('2016-08-11 16:12:11','yyyy-mm-dd hh24:mi:ss');大功告成,数据恢复成功;

但是也可能会出现问题,比如报错:ORA-08189:未启用行移动功能,不能闪回表;

不要怕,这个很简单;alter table 表名 enable row movement;然后再次执行上面SQL即可。


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表