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的更多相关文章

  1. Oracle中SAVEPOINT和ROLLBACK用法

    savepoint是事务内部允许部分rollback的标志符.因为事务中对记录做了修改,我们可以在事务中创建savepoint来标识不同的点.如果遇到错误,就可以rollback到不同的点或直接回来事 ...

  2. 4.事务提交过程,交易的基本概念,Oracle交易周期,保存点savepoint,数据库的隔离级别

     事务提交过程 事务 基本概念 概念:一个或者多个DML语言组成 特点:要么都成功.要么都失败 事务的隔离性:多个client同一时候操作数据库的时候.要隔离它们的操作, 否则出现:脏读  不可反 ...

  3. Oracle之savepoint

    Oracle之savepoint 什么是savepoint?Use the SAVEPOINT statement to identify a point in a transaction to wh ...

  4. 【Oracle】(savepoint)保存点的使用

    作用 保存点可以回退到事务的一部分,我们在操作数据库的过程中可以对事务分隔为几个部分,在操作失误的时候就可以回滚到某个点即可. 实现步骤 我们现在新建一张表TMP003 )); 第一步:插入第一条记录 ...

  5. Oracle中的SAVEPOINT

    学习存储过程中使用断点回滚事务时,发现目前网络上存在一个问题,那就是使用断点回滚后,都忘记了一个很重要的事情,提交事务.虽然使用了断点回滚,但是断点回滚不像rollBack或commit一样结束当前事 ...

  6. Oracle 的基本操作符

    != 不等于 select empno,ename,job from scott.emp where job!='manager' ^= 不等于 select empno,ename,job from ...

  7. Oracle 数据库语句大全

    Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...

  8. [原创]关于ORACLE的使用入门

    Oracle===============================数据库:Oracle------>甲骨文(Oracle) 49+%DB2---------->IBM 49+%Sq ...

  9. Oracle学习笔记四 SQL命令(二):SQL操作语言类别

    SQL分为下列语言类别 1.数据定义语言(DDL) Create.Alter.Drop 2.数据操纵语言(DML) Insert.Select.Delete.Update 3.事务控制语言(TCL) ...

随机推荐

  1. 逻辑运算符——逻辑与&&、逻辑或||

    一直以来,都是认为逻辑运算符返回的是布尔值,却突然发现:并不是这样. 对于||来说,如果条件判断结果为true就返回第一个操作数的值,如果为false就返回第二个操作数的值. &&则相 ...

  2. [LeetCode] Combination Sum II (递归)

    Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in ...

  3. Java学习-038-JavaWeb_007 -- JSP 动作标识 - plugin

    plugin 动作时用来在 JSP 页面中加载 Java Applet 或者 JavaBean 组件,语法格式如下所示: <jsp:plugin type="bean|applet&q ...

  4. 导入maven工程并配置maven环境

    步骤一 : 选择 "Import"操作 有两个途径可以选择 "Import"操作; 1>"File"--> "Impo ...

  5. css中的zoom的使用

    css中的zoom的使用  zoom : normal | number  normal : 默认值.使用对象的实际尺寸  number : 百分数 | 无符号浮点实数.浮点实数值为1.0或百分数为1 ...

  6. 网站启动SSL, http变为https后,session验证码错误解决方法

    网站启动SSL, http变为https后,session验证码错误解决方法   最近公司需要后台启动安全证书,证书安装完毕后,后台老提示 验证码错误,经过几天的研究,此问题已经得到有效解决,现把方法 ...

  7. 微信支付开发(12) 认清微信支付v2和v3

    微信支付现在分为v2版和v3版 2014年9月10号之前申请的为v2版,之后申请的为v3版. V2版中的参数有AppIDAppSecret支付专用签名串PaySignKey商户号PartnerID初始 ...

  8. 对memcpy函数的改进

    void *mymemcpy(void *dst,const void *src,size_t num) { assert((dst!=NULL)&&(src!=NULL)); int ...

  9. K线指标线计算方法

    指标线计算方法 l   dataDR = Kdata(原始数据)/dr(除权)  //除权数据等于原始数据除以DR(除权) 其中,日K数据 需要本地进行除权处理.周K和月K的旧数据部分由服务器进行处理 ...

  10. win7 加域开机自动登录域用户

    解决办法:1.本地管理员帐户登录到本机.点击左下角的“开始”,在运行中输入“regedit”,点击确定 2.弹出“注册表编辑器”,找到下面的路径:[HKEY_LOCAL_MACHINE\SOFTWAR ...