`

ORACLE SAVEPOINT使用解析

阅读更多
事务中的Savepoints
你可以在事务上下文中声明称为savepoint的中间标记。Savepoint将一个长事务分隔为较小的部分。
使用savepoint,你可以在长事务中任何点任意标记你的操作。然后你可以选择回滚在事务中当前点之前、声明的 savepoint之后执行的操作。比如,你可以在一长段复杂的更新中使用savepoint,如果犯了个错,你不需要重新提交所有语句。
Savepoints 在应用程序中同样有用。如果一个过程包含几个函数,那可以在每个函数前创建一个savepoint。如果一个函数失败,返回数据到函数开始前的状态并在修改参数或执行一个恢复操作后重新运行函数就非常容易。
在回滚到一个savepoint后,Oracle释放由被回滚的语句持有的锁。其他等待之前被锁资源的事务可以进行了。其他要更新之前被锁行的事务也可以执行。
当一个事务回滚到一个savepoint,发生下列事件:
1. Oracle仅回滚savepoint之后的语句。
2. Oracle保留这一savepoint,但所有建立于此后的savepoints丢失。
3. Oracle释放在该savepoint后获得的所有表、行锁,但保留之前获得的所有锁。
事务保持活动并可继续。
无论何时一个会话在等待事务,到savepoint的回滚不会释放行锁。为了确保事务如果无法获得锁也不会悬挂(hang),在执行UPDATE或DELETE前使用FOR UPDATE ... NOWAIT。(这里指回滚的savepoint之前获得的锁。该savepoint后获得的行锁会被释放,之后执行的语句也会被彻底回滚。)

注意:
1.savepoint 名字保持唯一
2.如果后面新设置的一个savepoint的名字和前面的一个 savepoint名字重复,前一个savepoint将被取消
3.设置savepoint后,事务可以继续commit,全部回退或者回退到具体一个savepoints
4.撤销的处理必须是在没有发出commit命令的前提下才能有效。

分享到:
评论

相关推荐

    oracle10g教程从入门到精通.doc

    不知有没有帮助二: Oracle的基本使用--基本命令 5 连接命令 5 文件操作命令 5 交互式命令 5 显示和设置环境变量 6 三:oracle用户管理 6 创建用户 6 给用户修改密码 6 删除用户 6 用户管理的综合案例 6 使用profile...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    有近20年使用Oracle技术产品以及Oracle数据库管理员/Oracle数据库应用管理员的经验,是真正应用集群、性能调优以及数据库内部属性方面的专家。同时是一位演讲家及Oracle ACE。  JARED STILL 从1994年就开始使用...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

    4.2 使用Oracle共享服务器体系结构 128 4.2.1 专用服务器体系结构的局限性 129 4.2.2 共享服务器体系结构 130 4.2.3 配置共享服务器 132 4.2.4 使用共享服务器的场合 132 4.3 本章知识点回顾 134 4.4 自测题 ...

    Oracle数据操作和控制语言详解.pdf

    Oracle数据操作和控制语言详解 1 1. DML语言 1 2. 插入数据 1 3. 更新数据 2 4. 删除数据 2 5. 清空表 2 6. SELECT FOR UPDATE 3 7. 锁定表 3 8. 死锁 4 9. 事务控制 4 10. Savepoint 和 部分回滚(Partial Rollback)...

    SavePoint.java

    SavePoint.java

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其一、就业面广:全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的工程师岗位。 其二、技术层次深:如果期望进入IT服务或者产品公司(类似毕博、DELL、IBM等),...

    Oracle8i_9i数据库基础

    第一部分 Oracle SQL*PLUS基础 23 第一章 Oracle数据库基础 23 §1.1 理解关系数据库系统(RDBMS) 23 §1.1.1 关系模型 23 §1.1.2 Codd十二法则 24 §1.2 关系数据库系统(RDBMS)的组成 24 §1.2.1 RDBMS 内核 24...

    北大青鸟Oracle教程集1

    (ORDBMS) 提供了关系数据库系统和面向对象数据库 系统这二者的功能 基于客户机 服务器技术 基于客户机/服务器技术 – 客户机 - 用户和数据库之间的接口 – 服务器 - 存储和管理数据 使用 Internet 文件系统 Oracle ...

    北大青鸟Oracle教程集2

    (ORDBMS) 提供了关系数据库系统和面向对象数据库 系统这二者的功能 基于客户机 服务器技术 基于客户机/服务器技术 – 客户机 - 用户和数据库之间的接口 – 服务器 - 存储和管理数据 使用 Internet 文件系统 Oracle ...

    oracle课件从入门到高级1

    oracle认证教程,从入门到高级,• 数据查询:select • DML(data manipulation language): insert、update、delete、merge • DDL(data definition language): create、alter、drop、rename、truncate • 事务控制...

    oracle的命令使用

    删除表中的数据:(表结构还在,通过...在删除表中数据之前可以设置保存点(savepoint a;) 删除数据后,可以用rollback to a;命令恢复表中的数据。 说明:如果不做任何处理,保存点只有一个。 删除表的结构和数据:

    Oracle数据库、SQL

    17.10保留点savepoint 36 十八、 数据库对象:视图view 37 18.1带子查询的create table 37 18.2带子查询的insert 37 18.3定义缺省值:default 37 18.4 视图view 38 18.5视图的应用场景 38 18.6视图的分类 39 18.7...

    Oracle经典教程

    事务控制语言(TCL),包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。 数据控制语言(DCL),GRANT(授权)命令、REVOKE(撤销)命令。 目前主流的数据库产品(比如:SQL Server、...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第1/2部分)

    4.2 使用Oracle共享服务器体系结构 128 4.2.1 专用服务器体系结构的局限性 129 4.2.2 共享服务器体系结构 130 4.2.3 配置共享服务器 132 4.2.4 使用共享服务器的场合 132 4.3 本章知识点回顾 134 4.4 自测题 ...

    关于MySQL中savepoint语句使用时所出现的错误

    前几天帮同事解决一个案例,在主从复制环境下,从库上的MySQL版本号是5.5.5,遇到下面的错误: #其他非相关信息我都隐藏掉了 ... Slave_IO_Running: Yes Slave_SQL_Running: No Last_Errno: 1064 ...

    JDBC事务管理及SavePoint示例Java开发Jav

    JDBC事务管理及SavePoint示例Java开发Java经验技巧共12页.pdf.zip

    基于Flink Rest API 二开的Web 控制台,支持作业管理、一键Savepoint及恢复,可视化实时数据同步功能

    基于Flink Rest API 二开的Web 控制台,支持作业管理、一键Savepoint及恢复,可视化实时数据同步功能(Binlog),多集群管理,开箱即用。基于 flink rest api 的 flink web admin,支持任务持久化管理,JOB编辑、提交...

Global site tag (gtag.js) - Google Analytics