Oracle 回滚详解(rollback)

1 概述

Oracle 事务管理
commit:提交
rollback:回滚
savepoint:允许用户将某一段处理进行回滚而不必回滚整个事务

2 语法

在这里插入图片描述
可选子句解释:

关键字解释备注
work为实现SQL标准兼容性而提供的写与不写,结果都一样
to savepoint clause将当前事务回滚至 clause若省略该子句,则当前事务都会被回滚
force string仅回滚指定的分布式事务,不会对当前的事务产生影响string:事务 id,可通过 dba_2pc_pending 进行查询

基础数据准备:

-- 学生信息表
create table student_info (
   sno   number(10) constraint pk_student_info_sno primary key,
   name varchar2(30),
   sex  varchar2(2)
);

2.1 rollback

-- *****************************************************************
-- 直接 回滚 事务
-- *****************************************************************
declare
begin
  insert into student_info (sno, name, sex) values (1, '张三', '女');
  insert into student_info (sno, name, sex) values (2, '李四', '男');

  rollback;
end;

运行结果:全部回滚,无数据写入数据库
在这里插入图片描述

2.2 rollback to savepoint xx

-- *****************************************************************
-- 1. savepoint xx: 回滚到回滚点 xx
-- 2. 若回滚点同名,则回滚至最近的一个回滚点(不建议同名,不方便排查问题)
-- *****************************************************************
declare
begin
   insert into student_info (sno, name, sex) values (1, '张三', '女');
   savepoint sp1;
   
   insert into student_info (sno, name, sex) values (2, '李四', '女');
   savepoint sp2; -- 若也是 ps1,则回滚至此处(最近)
   
   -- 模拟报错:违反唯一性约束
   insert into student_info (sno, name, sex) values (2, '王五', '男');
   savepoint sp3;
   
   commit;
exception 
  when others then
    rollback to sp1;
    -- 报错信息
    dbms_output.put_line(dbms_utility.format_error_backtrace);
    dbms_output.put_line(sqlcode ||' : ' || sqlerrm);
    commit;
end;

运行结果:
在这里插入图片描述

2.3 rollback work force ‘string’

1. 使用场景
   (1) 分布式事务
   
2. 具体操作
   (1) select * from dba_2pc_pending;  -- 查询
   (2) rollback work force '25.32.87';  -- 回滚

3 扩展

3.1 rollback 官方解释

  • Oralce 官方解释:rollback
鱼丸丶粗面
关注 关注
  • 26
    点赞
  • 119
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
查询会话回滚进度 oracle,Oracle回滚段使用查询代码详解
weixin_42310231的博客
04-04 1946
大批量执行DML语句造成回滚段大量占用,又回退操作,如何直观查询数据回滚情况?单机环境 查询回滚执行进度select /*+ rule */s.sid,r.name rr,nvl(s.username,'no transaction') us,s.osuser os,s.terminal te,t.used_urec rec,t.used_ublk blkfrom v$lock l, v$sess...
Oracle 回滚事务
weixin_44587257的博客
07-28 2499
ROLLBACK:事务处理回退: 数据回滚:在Oracle中,ROLLBACK语句可以用来撤销当前事务或有问题的事务,使数据变化失效,修改前的数据状态被恢复。 当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值。 例:使用ROLLBACK语句在Oracle中...
Oracle 回滚(ROLLBACK)和撤销(UNDO)
wm920的专栏
01-23 368
--================================== --Oracle 回滚(ROLLBACK)和撤销(UNDO) --================================== 一、回滚(ROLLBACK)和撤销(UNDO) 回滚和前滚是保证Oracle数据库中的数据处于一致性状态的重要手段。 在9i版本以前 Oracl...
oracle 事务回滚
最新发布
weixin_41203765的博客
08-22 635
Oracle数据库中,将一系列数据库操作作为整体进行回滚,主要依赖于事务控制。
Oracle 实例恢复时 前滚(roll forward) 后滚(roll back) 问题
David Dai -- Focus on Oracle
03-29 1万+
<br /> <br />       在ITPUB 论坛上看到一个有关实例恢复时前滚(roll forword)和回滚(roll back)的讨论。在这里小整理一下,也理理自己的一个思路。<br /> <br />一. 什么时候需要实例恢复<br />       在shutdown normal or shutdown immediate下,也就是所谓的clean shutdown,checkpoint也会自动触发,并且把SCN纪录写回。 当发生checkpoint时,会把SCN写到四个地方:<br /
oraclerollback用法
xiaozhuangyumaotao的博客
01-26 2305
rowback作用是回滚回滚到上次commit之后的状态点,比如: commit;--代表前一个状态已经结束 insert....--假设这里做了很多的插入操作 savepointa;--保存一个回滚点,命名为a delete...--假设这里做了很多其他dml操作 rollbacktosavepointa;--如果上次那个dml操作失败了,就可以通过这条语句回滚到delete...
Oracle数据回滚
热门推荐
w8827130的博客
04-16 2万+
最近在修复一个比较老的项目报表的bug的时候,因为对该项目不太熟悉,导致生产环境数据修改有误,于是求助导师帮忙回滚数据,现学习一下Oralce数据回滚以备不时之需。 查看某个时间点的表的数据 select * from 表名 as of timestamp to_timestamp('2019-04-15 22:00:38', 'yyyy-mm-dd hh24:mi:ss'); 开启闪...
16.Oracle ROLLBACK语句(回滚事务)——《跟老吕学Oracle
Python老吕的博客
05-05 1421
在这个示例中,如果在第一个操作块中发生错误,事务将回滚到SAVEPOINT sp1,之前的更改将被撤销。事务是一组SQL语句的集合,这些语句要么全部执行,要么全部不执行,确保数据库的完整性和一致性。SAVEPOINT是事务中的一个标记点,允许你在事务中的任何位置回滚到特定的点。使用ROLLBACK语句时,需要注意的是,它只能撤销当前事务中尚未提交的更改。通过合理使用ROLLBACK和SAVEPOINT,你可以在Oracle数据库中实现更加灵活和可靠的事务管理,确保数据的完整性和一致性。
Oracle回滚段使用查询代码详解
09-09
Oracle回滚段(Rollback Segments)是数据库管理系统中用于存储事务回滚信息的重要组成部分。在Oracle数据库中,回滚段记录了事务中修改的数据在事务提交前的原始状态,以便在事务回滚或系统异常时能恢复到事务开始...
Oracle数据库事务回滚rollback详解
"Oracle数据库事务回滚与数据库管理系统详解" 在Oracle数据库中,事务处理是确保数据一致性的重要机制。事务回滚rollback)是其中的关键操作,用于撤销在事务中执行的所有更改。当执行`ROLLBACK`语句时,数据库将...
Oracle回滚详解:原理、管理与问题诊断
"深入解析Oracle回滚段.pdf" Oracle回滚段是数据库管理系统中至关重要的一部分,主要负责维护事务的原子性和一致性。在Oracle数据库中,回滚段(Rollback Segment)是用来存储事务修改数据前的旧版本,即回滚信息的...
Oracle回滚详解:作用、原理与管理
理解和掌握Oracle回滚段的原理和管理对于数据库管理员和开发人员至关重要,它有助于提升系统的稳定性和性能。尽管Oracle文档提供了详尽的信息,但通过实践和经验总结,我们可以更好地理解和应对实际工作中遇到的问题...
Oracle 数据回滚
lf1934305268的博客
11-30 524
//数据回滚 指定某一时间段 flashback table TB_HY_COURSE_DJ to timestamp TO_TIMESTAMP('2020-11-30 17:00:38', 'yyyy-mm-dd hh24:mi:ss'); //如果报没有开启行迁移 就先执行下面这个再执行上面那个 alter table TB_HY_COURSE_DJ enable row movement; ...
Oracle数据库回滚
a549116349的博客
06-19 257
-- 数据回滚 -- 清空表内 ALL_DATA。 DELETE FROM [TABLE_NAME]; -- 查询表内数据总数。 SELECT COUNT(*) AS COUNT FROM [TABLE_NAME]; -- 执行表数据闪回(回滚)申明 ALTER TABLE [TABLE_NAME] ENABLE ROW MOVEMENT; -- 正式数...
oraclerollback的使用方法
weixin_30615767的博客
09-23 390
.Xlh790 { display:none; } rollback使用SQL> create table tbl(name varchar2(10)); Table created. SQL> insert into tbl values('zhiqiao'); 1 row created. ...
oracle数据回滚
FHLD926109的博客
08-11 5751
Oracle数据恢复
oracle 回滚演示 rollback演示
javasalatu
09-21 178
SQL&gt; lock table state in exclusive mode; Table(s) Locked.SQL&gt; insert into state(state_cd,state_name) values ('NM','Neimenggu'); 1 row created. SQL&gt; select * from state; STAT STATE_NA...
oracle 表数据回滚方法
java_probie的博客
12-13 2514
【代码】oracle 表数据回滚方法。
写文章

热门文章

  • Oracle 游标详解(cursor) 78682
  • Oracle 回滚详解(rollback) 46631
  • Oracle 创建用户详解(create user) 37045
  • 存储系统 - 存储容量计算(字节编址、位编址、芯片个数) 34222
  • required a bean of type 'xxx' that could not be found. 32285

分类专栏

  • Python 55篇
  • Oracle 150篇
  • MySQL 20篇
  • Kettle Spoon 7篇
  • FineReport 1篇
  • Linux
  • Docker
  • 网络信息安全
  • 网络工程 69篇
  • eNSP 6篇
  • Qlik Sense 11篇
  • HANA 2篇
  • Java 12篇
  • jQuery 1篇
  • Web 5篇
  • MyBatis 3篇
  • Spring Boot 6篇
  • Maven 2篇
  • DataGrip 1篇
  • Idea 7篇
  • Pycharm 3篇
  • WPS 1篇
  • Excel 3篇
  • 工具 8篇

最新评论

  • 存储系统 - 存储容量计算(字节编址、位编址、芯片个数)

    wxhzone: 考,这个应该是搞错了,让我在这里瞎计算半天,老是对不上结果。

  • 数据通信基础 - 数据编码(曼彻斯特编码 和 差分曼彻斯特编码)

    hrblgd: 电平转换代表啥是可定义的,所以多给你个差分图

  • Python 正则表达式详解(re)

    CSDN-Ada助手: 哇, 你的文章质量真不错,值得学习!不过这么高质量的文章, 还值得进一步提升, 以下的改进点你可以参考下: (1)使用更多的站内链接;(2)提升标题与正文的相关性。

  • Python pandas 操作 excel 详解

    泡芙萝莉酱: 博主在这篇关于“Python pandas 操作excel详解”的文章中展现了自己深厚的功底和对主题的全新认识,让我受益匪浅。文章中的细节描写非常到位,让我对Python pandas操作excel有了更清晰的理解。期待博主未来能够继续分享更多这样有价值的文献,也希望可以得到博主更多的指导和帮助,共同进步。非常感谢博主的无私分享和支持!

  • Oracle 导出、导入详解(expdp、impdp、exp、imp)

    CSDN-Ada助手: 大数据和人工智能之间是什么关系?

大家在看

  • 单片机通过AT指令控制ESP8266+TCP 实现收发数据
  • STM32--JQ8900语音模块
  • 论文 Python 实现WOA-CNN-BiGRU-Attention数据分类预测 64
  • 手环押金原路退回系统——足浴店——东方仙盟

最新文章

  • PLSQL 显示行号(隔条)
  • Python pip 更换镜像源
  • Windows cmd 输入 Python 弹出应用商城
2024年21篇
2023年79篇
2022年60篇
2021年56篇
2020年125篇
2019年27篇
2018年13篇

目录

目录

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼丸丶粗面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

玻璃钢生产厂家上海常见商场美陈生产公司秋季商场美陈布置河南省商场美陈邯郸价值观玻璃钢人物雕塑公司广场标识玻璃钢仿铜雕塑价格深圳户外商场美陈现价南通玻璃钢卡通雕塑厂家推广四川创意玻璃钢雕塑销售电话玻璃钢雕塑片珠海玻璃钢主题雕塑制作厂湛江玻璃钢造型雕塑厂家博尔塔拉景观玻璃钢雕塑铜川玻璃钢浮雕人物山水雕塑河南彩绘玻璃钢雕塑加工价格玻璃钢大型雕塑工程做玻璃钢雕塑威海广场玻璃钢雕塑玻璃钢雕塑仿铜怎么制做荔湾名人玻璃钢人物雕塑广东商场主题创意商业美陈策划佛像玻璃钢雕塑怎么制作黔西南商场美陈布置滁州景观玻璃钢雕塑多少钱大连玻璃钢雕塑批发玻璃钢雕塑如何维护铜陵玻璃钢花盆玻璃钢雕塑小红人玻璃钢卡通小人雕塑四川商场美陈有哪些海洋玻璃钢卡通雕塑厂香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化