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) ...
随机推荐
- Qt调用Server SQL中的存储过程
Server SQL中的存储过程如下: CREATE procedure PINSERTPC @pcnum int, @pcname varchar(50), @pctype int, @ipaddr ...
- Dom方式解析XML
public class TestXML { public static void main(String[] args) throws SAXException, IOException { //D ...
- 针对JD-GUI
switch(0){ case 1001: JSONObject jsoObj; String data = null; boolean isclose = false; try{ jsoObj = ...
- ligerui ligerTip气泡提示信息
onAfterShowData:function(){ $('.l-grid-row-cell-inner').hover(function (){ $(this).ligerTip({content ...
- 超爱http://www.runoob.com/菜鸟编程
超爱http://www.runoob.com/菜鸟编程 http://www.runoob.com/
- nginx支持cgi(c,c++)
前段时间用我修改了tinyhttpd,让其cgi支持文件流,感觉满小巧,就应用上了.最近访问请求量上来而来,它对socket的各种异常状态处理不好,对于慢速的链接会占用我的线程.虽然我一直想仿出ten ...
- linux chmod命令(转)
chmod命令用于改变linux系统文件或目录的访问权限.用它控制文件或目录的访问权限.该命令有两种用法.一种是包含字母和操作符表达式的文字设定法:另一种是包含数字的数字设定法. Linux系统中的每 ...
- 30天,O2O速成攻略【7.19深圳站】
活动概况 时间:2015年07月19日13:30-16:30 地点:深圳腾讯大厦(南山区科技园科技中一路)2楼多功能厅 主办:APICloud.OneAPM.连接科技 网址:www.apicloud. ...
- Ubuntu 上安装 Freemind 并支持中文
Ubuntu 上安装 Freemind 并支持中文 JAVA 运行时 Freemind 是一个使用 Java 编写的思维导图工具,在安装时,需要到 Java 运行时(使用 OpenJRE 或 Orac ...
- SQLdiag-配置文件-PerfmonCollector
前一篇我们已经使用默认配置文件收集了部分诊断数据,并且知道配置文件会影响收集数据的内容.这一篇我们重点讲述配置文件中与性能计数器相关的操作.可使用XML模板控制SQLdiag使用的收集器.每个收集器可 ...