Oracle数据回退的实现

 更新时间:2023年08月20日 16:23:31   作者:梁萌  
在使用plsql工具,对表数据进行操作后,提交了事务,发现数据更新或者删除错了,这时候还是有方法可以把数据回退的,本文就详细的介绍此方法,感兴趣的可以了解一下

在使用plsql工具,对表数据进行操作后,提交了事务,发现数据更新或者删除错了,这时候还是有方法可以把数据回退的,下面进行操作。

对emp表数据进行操作,更新前数据如下所示:

现在对SAL字段进行更新,原本想更新一条数据,现在没有加where条件,误将所有记录都更新。

更新后的数据如上图所示,全部记录都被更新了,事务也提交了(数据库的数据已经被修改)。 此时更新的时间是13:51分。

下面进行数据回退操作,将数据回退到13:50分,也就是update操作之前:

在回退之前,先查询13:50分的数据,是不是我们想要的数据,也就是进行数据确认:

SELECT  * FROM emp  as of timestamp to_timestamp('2023-08-20 13:50:00','yyyy-MM-dd HH24:MI:SS');

 查询结果没有问题,下面进行数据回退的执行操作:

 --闪回恢复数据  flashback table emp to   timestamp to_timestamp('2023-08-20 13:50:00','yyyy-MM-dd HH24:MI:SS');

如果闪回恢复数据提示:因为未启用行移动功能,不能闪回表。 执行以下语句,允许行移动

 alter table emp enable row movement;

再次执行闪回恢复数据的SQL。执行完毕后,再次查询表数据:

 数据已经回退到update之前的内容了。

总结:数据闪回是将数据退回到某个时间点,核心的语句有三个:

--查询指定时刻的数据
 SELECT  * FROM emp  as of timestamp to_timestamp('2023-08-20 13:50:00','yyyy-MM-dd HH24:MI:SS');
  --如果闪回恢复数据提示:因为未启用行移动功能,不能闪回表。 执行以下语句,允许行移动
 alter table emp enable row movement;
 --闪回恢复数据
 flashback table emp to   timestamp to_timestamp('2023-08-20 13:50:00','yyyy-MM-dd HH24:MI:SS');

注意:使用 truncate table 命令删除的表数据,无法通过flashback的方式找回数据。

到此这篇关于Oracle数据回退的实现的文章就介绍到这了,更多相关Oracle数据回退内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Oracle数据库中lead和lag函数用法示例

    Oracle数据库中lead和lag函数用法示例

    lag与lead函数是跟偏移量相关的两个分析函数,通过这两个函数可以在一次查询中取出同一字段的前N行的数据(lag)和后N行的数据(lead)作为独立的列,这篇文章主要给大家介绍了关于Oracle数据库中lead和lag函数用法的相关资料,需要的朋友可以参考下
    2024-06-06
  • Oracle分组函数之ROLLUP的基本用法

    Oracle分组函数之ROLLUP的基本用法

    这篇文章主要给大家介绍了关于Oracle分组函数之ROLLUP的基本用法,文中通过示例代码介绍的非常详细,对大家学习或者使用Oracle数据库具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • oracle中关于case when then的使用

    oracle中关于case when then的使用

    这篇文章主要介绍了oracle中关于case when then的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 将Oracle数据库中的数据写入Excel

    将Oracle数据库中的数据写入Excel

    本文主要分享了将Oracle数据库中的数据写入Excel的关键代码。具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • Oracle 表空间查询与操作方法

    Oracle 表空间查询与操作方法

    本文将介绍Oracle 表空间查询与操作方法,需要了解跟多的朋友可以参考下
    2012-11-11
  • Oracle日期函数简介

    Oracle日期函数简介

    如果要对Oracle数据库中的日期进行处理操作,需要通过日期函数进行实现,下文对几种Oracle日期函数作了详细的介绍,供您参考
    2007-03-03
  • ORACLE中查找定位表最后DML操作的时间小结

    ORACLE中查找定位表最后DML操作的时间小结

    在Oracle数据库中,如何查找,定位一张表最后一次的DML操作的时间呢? 方式有三种,不过都有一些局限性,下面简单的解析、总结一下。感兴趣的朋友跟随小编一起看看吧
    2018-11-11
  • [Oracle] 分析AWR报告的方法介绍

    [Oracle] 分析AWR报告的方法介绍

    因为AWR报告非常长,不可能从头到尾一字不漏的去看,要有选择的去看重点部分。最好能对照的来读,即和系统正常情况下的AWR报告对比,找差异。以下就是对分析AWR报告的方法进行了介绍,需要的朋友参考下
    2013-07-07
  • Oracle 临时表 OracleDataAdapter 批量更新的实现思路

    Oracle 临时表 OracleDataAdapter 批量更新的实现思路

    这篇文章主要介绍了Oracle 临时表 OracleDataAdapter 批量更新的实现思路,实现代码需要注意字段名必需大小写一致,需要的朋友可以参考下
    2024-07-07
  • Oracle数据库实现查询所有表

    Oracle数据库实现查询所有表

    文章总结了在数据库中查询表和列信息的方法,包括查询所有表、特定用户的表、表的列名和注释,以及如何根据表名进行模糊查询,它还提供了如何查询数据库中所有表的大小并进行排序的指令
    2025-12-12

最新评论