文章目录

  • 1 概述
  • 2 语法
    • 2.1 rollback
    • 2.2 rollback to savepoint xx
    • 2.3 rollback work force 'string'
  • 3 扩展
    • 3.1 rollback 官方解释

1 概述

#mermaid-svg-qrVilWCtDcJZib2j {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-qrVilWCtDcJZib2j .error-icon{fill:#552222;}#mermaid-svg-qrVilWCtDcJZib2j .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-qrVilWCtDcJZib2j .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-qrVilWCtDcJZib2j .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-qrVilWCtDcJZib2j .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-qrVilWCtDcJZib2j .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-qrVilWCtDcJZib2j .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-qrVilWCtDcJZib2j .marker{fill:#333333;stroke:#333333;}#mermaid-svg-qrVilWCtDcJZib2j .marker.cross{stroke:#333333;}#mermaid-svg-qrVilWCtDcJZib2j svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-qrVilWCtDcJZib2j .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-qrVilWCtDcJZib2j .cluster-label text{fill:#333;}#mermaid-svg-qrVilWCtDcJZib2j .cluster-label span{color:#333;}#mermaid-svg-qrVilWCtDcJZib2j .label text,#mermaid-svg-qrVilWCtDcJZib2j span{fill:#333;color:#333;}#mermaid-svg-qrVilWCtDcJZib2j .node rect,#mermaid-svg-qrVilWCtDcJZib2j .node circle,#mermaid-svg-qrVilWCtDcJZib2j .node ellipse,#mermaid-svg-qrVilWCtDcJZib2j .node polygon,#mermaid-svg-qrVilWCtDcJZib2j .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-qrVilWCtDcJZib2j .node .label{text-align:center;}#mermaid-svg-qrVilWCtDcJZib2j .node.clickable{cursor:pointer;}#mermaid-svg-qrVilWCtDcJZib2j .arrowheadPath{fill:#333333;}#mermaid-svg-qrVilWCtDcJZib2j .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-qrVilWCtDcJZib2j .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-qrVilWCtDcJZib2j .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-qrVilWCtDcJZib2j .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-qrVilWCtDcJZib2j .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-qrVilWCtDcJZib2j .cluster text{fill:#333;}#mermaid-svg-qrVilWCtDcJZib2j .cluster span{color:#333;}#mermaid-svg-qrVilWCtDcJZib2j div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-qrVilWCtDcJZib2j :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

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
begininsert 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
begininsert 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 thenrollback 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

Oracle 回滚详解(rollback)相关推荐

  1. java 事务回滚注解_Java Spring 事务回滚详解

    这篇文章主要介绍了java Spring事务回滚的相关资料,需要的朋友可以参考下 spring 事务回滚 1.遇到的问题 当我们一个方法里面有多个数据库保存操作的时候,中间的数据库操作发生的错误.伪代 ...

  2. oracle回滚断查询,Oracle回滚段使用查询代码详解

    大批量执行DML语句造成回滚段大量占用,又回退操作,如何直观查询数据回滚情况? 单机环境 查询回滚执行进度 sql;"> select /*+ rule */s.sid,r.name ...

  3. ORACLE 回滚段详解

    ORACLE 回滚段   回滚段概述  回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值).回滚段的头部包含正在使用的该回滚段事务的信息.一个事务只能使用一个回滚段来存放它的回滚信息,而一个 ...

  4. Oracle 闪回技术详解

    概述 闪回技术是Oracle强大数据库备份恢复机制的一部分,在10g的时候就被推出一直延续到现在.在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成 ...

  5. Oracle闪回技术详解

    Oracle的闪回技术提供了一组功能,可以访问过去某一时间的数据并从人为错误中恢复.闪回技术是Oracle 数据库独有的,支持任何级别的恢复,包括行.事务.表和数据库范围.使用闪回特性,您可以查询以前 ...

  6. oracle闪回数据库详解

    --- 说明闪回数据库 --- 使用闪回表将表内容还原到过去的特定时间点 --- 从删除表中进行恢复 --- 使用闪回查询查看截止到任一时间点的数据库内容 --- 使用闪回版本查询查看某一行在一段时间 ...

  7. oracle 闪回功能详解

    Oracle的闪回技术提供了一组功能,可以访问过去某一时间的数据并从人为错误中恢复.闪回技术是Oracle 数据库独有的,支持任何级别的恢复,包括行.事务.表和数据库范围.使用闪回特性,可以查询以前的 ...

  8. oracle 闪回表定义,oracle闪回表详解

    --- 说明闪回数据库 --- 使用闪回表将表内容还原到过去的特定时间点 --- 从删除表中进行恢复 --- 使用闪回查询查看截止到任一时间点的数据库内容 --- 使用闪回版本查询查看某一行在一段时间 ...

  9. Oracle 闪回特性 详解

    Oracle的闪回技术提供了一组功能,可以访问过去某一时间的数据并从人为错误中恢复.闪回技术是Oracle 数据库独有的,支持任何级别的恢复,包括行.事务.表和数据库范围.使用闪回特性,您可以查询以前 ...

最新文章

  1. 商品规格可选怎么设计_商品模块数据库表解析(一)
  2. 数据结构: 顺序存储二叉树
  3. aws v2.2.exe_如何使用Python 3.6在AWS EC2上创建运行uWSGI,NGINX和PostgreSQLDjango服务器...
  4. WinForms多线程编程之摇奖程序
  5. Godaddy Windows主机组件支持情况
  6. Android中的事件分发和处理
  7. Java Web学习笔记07:数据源、JavaBean与MVC模式
  8. 为什么线程池里的方法会执行两次_别以为线程池很简单,来回答下这些问题!...
  9. Spring学习笔记3——使用注解的方式完成注入对象中的效果
  10. 【分布式】Zookeeper序列化及通信协议
  11. Java vbnullstring_VB中Null、Empty、Nothing及vbNullString的区别
  12. 摇杆控制方向原理_摇杆电位器原理及结构
  13. import cv2
  14. matlab统计所有股票分析,MATLAB金融算法分析实战:基于机器学习的股票量化分析...
  15. 百度B端战事渐入佳境
  16. 春招笔记(十一)--设计模式
  17. 2018阿里巴巴全球诸神之战创客大赛总决赛即将举行
  18. 中科红旗之死--国产软件界最大不幸
  19. 972信息检索 | 第九章 网络信息检索与利用中的有关问题
  20. AOP相关术语(连接点、切入点、通知、引介、目标对象、织入、代理、切面)

热门文章

  1. u盘打不开提示格式化?里面的数据怎么办?
  2. 《python 机器学习算法-logistics regression》
  3. linux ss的使用方法
  4. 百度云盘archlinux manjaro直接安装
  5. 吃透一切整流滤波电路
  6. UI设计师与服务定律
  7. 【小白学java】D35》》》线程入门学习,线程(多线程)的实现
  8. 安卓自定义View画钟实现转动
  9. 南京市shp矢量数据wgs84坐标系包含区划路网水系poi功能区等类型
  10. 计算机通信网络发展趋势,通信网络的现状及发展方向分析