Oracle使用updateSQL语句忘记加条件,误改了其他数据的回滚方法

当在Oracle数据库中执行UPDATE语句时忘记添加条件,导致错误修改了数据,可以通过查询V$SQLAREA找到操作时间,启用表的行迁移,然后使用FLASHBACK TABLE命令回滚到特定时间点来恢复数据。记得在执行正确的UPDATE语句以确保数据的准确性。务必谨慎操作数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Oracle使用updateSQL语句忘记加条件,误改了其他数据的回滚方法
执行下面sql时,忘加条件:

select * from er_bxzb where djbh = '264X202108030227'

select * from er_bxzb where djbh = '264X202107060442';

update er_bxzb set spzt = '1';

想要修改的单据
在这里插入图片描述

这是其他单据的审批状态
在这里插入图片描述
误改后不管是保存还是暂存,所有审批状态都变成了审核通过-。-。

解决办法就是执行以下三条sql:

(1)第一条SQL语句

--作用就是找到刚刚误操作执行的时间节点,这个时间便是回滚的时间
select r.FIRST_LOAD_TIME,r.* from v$sqlarea r order by r.FIRST_LOAD_TIME desc ;

(2)第二条SQL语句

--作用就是开启表的行迁移
alter table m_met_rules enable row movement;

(3)第三条SQL语句

--作用就是回滚表数据到目标时间节点
flashback table test to timestamp to_timestamp('20211129 14:52:35','YYYYMMDD HH24:MI:SS');

上面语句的table和时间要根据自己的情况进行修改

执行完之后,就会回到这个误操作之前啦,然后在执行正确的语句,便可以完成,对数据库操作一定要仔细仔细再仔细!

正确SQL语句

upate er_bxzb set spzt = '1' where djbh = '264X202108030227'

正确修改后
在这里插入图片描述

原文链接:https://blog.youkuaiyun.com/hl961403370/article/details/121691004

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值