Oracle Savepoint
1.目的:
Use the SAVEPOINT statement to identify a point in a transaction to which you can later roll back.
使用检查点语句标识一个事务点以便在后面可以回滚。
2. 预备知识:
无。
3.语法:

SAVEPOINT savepoint ;
4.下面来看示例:
1)首先看一下员工表中Banda的工资
SQL> select employee_id, last_name, salary from employees where last_name='Banda';
EMPLOYEE_ID LAST_NAME SALARY
----------- ------------------------- ----------
167 Banda 6200
2)我们来修改一下Banda的工资并创建检查点banda_sal:
SQL> update employees
2 set salary = 7000
3 where last_name ='Banda';
已更新 1 行。
SQL> savepoint banda_sal;
保存点已创建。
3)再对Banda的工资做一次修改并创建检查点banda_sal2:
SQL> update employees
2 set salary = 8000
3 where last_name ='Banda';
已更新 1 行。
SQL> savepoint banda_sal2;
保存点已创建。
SQL> select employee_id, last_name, salary from employees where last_name='Banda';
EMPLOYEE_ID LAST_NAME SALARY
----------- ------------------------- ----------
167 Banda 8000
4)下面进行回退操作,使回退到检查点banda_sal:
SQL> rollback to savepoint banda_sal;
回退已完成。
SQL> select employee_id, last_name, salary from employees where last_name='Banda';
EMPLOYEE_ID LAST_NAME SALARY
----------- ------------------------- ----------
167 Banda 7000
5)下面进行提交操作,再进行回退操作:
SQL> commit;
提交完成。
SQL> rollback to savepoint banda_sal2;
rollback to savepoint banda_sal2
*
第 1 行出现错误:
ORA-01086: 从未创建保存点 'BANDA_SAL2'
5. 总结:
1)通过创建检查点我们可以在事务提交前回退到任意已创建检查点的事务。
2)检查点在事务提交后就不存在了,这点可以从示例中看出。
Oracle Savepoint的更多相关文章
- Oracle中SAVEPOINT和ROLLBACK用法
savepoint是事务内部允许部分rollback的标志符.因为事务中对记录做了修改,我们可以在事务中创建savepoint来标识不同的点.如果遇到错误,就可以rollback到不同的点或直接回来事 ...
- 4.事务提交过程,交易的基本概念,Oracle交易周期,保存点savepoint,数据库的隔离级别
事务提交过程 事务 基本概念 概念:一个或者多个DML语言组成 特点:要么都成功.要么都失败 事务的隔离性:多个client同一时候操作数据库的时候.要隔离它们的操作, 否则出现:脏读 不可反 ...
- Oracle之savepoint
Oracle之savepoint 什么是savepoint?Use the SAVEPOINT statement to identify a point in a transaction to wh ...
- 【Oracle】(savepoint)保存点的使用
作用 保存点可以回退到事务的一部分,我们在操作数据库的过程中可以对事务分隔为几个部分,在操作失误的时候就可以回滚到某个点即可. 实现步骤 我们现在新建一张表TMP003 )); 第一步:插入第一条记录 ...
- Oracle中的SAVEPOINT
学习存储过程中使用断点回滚事务时,发现目前网络上存在一个问题,那就是使用断点回滚后,都忘记了一个很重要的事情,提交事务.虽然使用了断点回滚,但是断点回滚不像rollBack或commit一样结束当前事 ...
- Oracle 的基本操作符
!= 不等于 select empno,ename,job from scott.emp where job!='manager' ^= 不等于 select empno,ename,job from ...
- Oracle 数据库语句大全
Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...
- [原创]关于ORACLE的使用入门
Oracle===============================数据库:Oracle------>甲骨文(Oracle) 49+%DB2---------->IBM 49+%Sq ...
- Oracle学习笔记四 SQL命令(二):SQL操作语言类别
SQL分为下列语言类别 1.数据定义语言(DDL) Create.Alter.Drop 2.数据操纵语言(DML) Insert.Select.Delete.Update 3.事务控制语言(TCL) ...
随机推荐
- php--memcahce安装
安装php_memcache.dll扩展 1.首先将php_memcache.dll文件放入E:\server\php\ext目录下 (php_memcache.dll下载地址:http://wind ...
- C#访问url地址并返回数据
public partial class Form1 : Form { static bool isSelect = false; public Form1() { InitializeCompone ...
- cf707D. Persistent Bookcase(离线+dfs)
题目链接:http://codeforces.com/problemset/problem/707/D 有一个n*m的书架,有K个操作,求每个操作后一共有多少本书:有4种操作: 1:x y 如果 x ...
- Java学习-021-Properties 获取配置项对应的值
在日常的脚本编写过程中,通常会获取配置文件中的配置项,以执行相应的业务逻辑. 小二上码...若有不足之处,敬请大神指正,不胜感激! 获取配置项值的源码如下所示: /** * Get value fro ...
- 【转】深入理解TextView实现Rich Text--在同一个TextView设置不同字体风格
深入理解TextView实现Rich Text--在同一个TextView设置不同字体风格 作者: 字体:[增加 减小] 类型:转载 本篇文章是对Android中在同一个TextView中设置不同 ...
- LeetCode Binary Search Tree Iterator
原题链接在这里:https://leetcode.com/problems/binary-search-tree-iterator/ Implement an iterator over a bina ...
- iOS:创建Siri 功能
前奏: iOS 10 出来之后,我们开发者也可以使用类似Siri的功能.它是使用Siri里面的一个语音识别框架Speech framework来处理siri的.现在, 让我们来看看 一些 主要的代码吧 ...
- 使用shell测试cdn状态
公司使用多家cdn,测试cdn在各个地方的响应情况,以便于提高视频访问的用户体验.分别在阿里云华南1,华东1,华东2,华北2等不同地区节点测试.该随笔为自己所用. 1.该脚本会测试某一cdn的ur ...
- Buffer too small
在项目中用到了CString,后来发现在Format的时候会报Buffer too small的错误,在网上查资料发现时这样的 CString output ; int size = m_NicInf ...
- centos vmware centos6.6 64位 kvm虚拟化安装配置 第四十二节课
centos vmware centos6.6 64位 kvm虚拟化安装配置 第四十二节课 上半节课 下半节课 f