Oracle通过时间点恢复已经删除且提交的数据

2025-10-27 16:00:39

Oracle操作数据库的时候,有时会误操作一些数据,如果没有提交,一切都好说,已经提交了怎么办?这时候,我们就需要通过一些措施来恢复这些被我们误操作的数据,我使用的工具是PLSQL。

    查询当前系统时间

    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

    ps:这步一般可以跳过,直接从第2步开始。但有的本机系统时间不是当前北京时间的需要操作这一步。

    查询删除数据的时间点的数据

    select * from 表名 as of timestamp to_timestamp('2017-06-02 15:29:00','yyyy-mm-dd hh24:mi:ss');

    ps:如果结果不是自己想要的,则继续缩小时间范围,查询的数据结果为:截止到当前选中时间点之前这段时间内的所有数据。

    恢复删除且已提交的数据

    flashback table 表名 to timestamp to_timestamp('2017-06-02 15:29:00','yyyy-mm-dd hh24:mi:ss');

    如果在执行第 3 步语句,出现错误(plsql报错:没有行移植功能)。

    可以执行 alter table 表名 enable row movement,然后再执行第 3 步语句即可。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢