当前位置:  数据库>oracle

Oracle savepoint介绍

    来源: 互联网  发布时间:2017-05-02

    本文导语: SAVEPOINT  由官方文档提供http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_10001.htm#SQLRF01701 1.目的: Use the SAVEPOINT statement to identify a point in a transaction to which you can later roll back. 使用检查点语句标识一个事务点以便在后面可以回滚...

SAVEPOINT  由官方文档提供http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_10001.htm#SQLRF01701

1.目的:

Use the SAVEPOINT statement to identify a point in a transaction to which you can later roll back.

使用检查点语句标识一个事务点以便在后面可以回滚。

2. 预备知识:

无。

3.语法:

Oracle savepoint介绍[图片]

 

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 12c发布简单介绍及官方下载地址
  • Oracle 系统变量函数介绍
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle中SQL语句连接字符串的符号使用介绍
  • Oracle 10g和Oracle 11g网格技术介绍
  • oracle 数据泵导入导出介绍
  • ORACLE数据库常用字段数据类型介绍
  • Oracle解锁的方式介绍
  • Oracle 12c的九大最新技术特性介绍
  • 占用一下,小弟想到深圳发展,有一年JAVA开发经验,熟悉oracle数据库,哪位在深圳的兄弟帮忙介绍个工作,我的QQ:9182647,谢谢了!
  • oracle中UPDATE nowait 的使用方法介绍
  • oracle 创建表空间详细介绍
  • 哪位大哥能介绍一下在redhat7.2下安装oracle9i的过程和细节问题,只要有用,小弟另有送分
  • Oracle中PL/SQL中if语句的写法介绍
  • oracle 重置sys密码的方法介绍
  • Oracle中存取控制介绍
  • oracle中截断表的使用介绍
  • oracle异常(预定义异常,自定义异常)应用介绍
  • oracle sequence语句重置方介绍
  • oracle表空间中空表统计方法示例介绍
  • Oracle round()函数与trunc()函数区别介绍
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • oracle 11g最新版官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 请问su oracle 和su - oracle有什么不同?
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 虚拟机装Oracle R12与Oracle10g
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Oracle EBS R12 支持 Oracle Database 11g
  • ORACLE日期相关操作
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • ORACLE中DBMS_RANDOM随机数生成包
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • Linux系统下Oracle的启动与Oracle监听的启动
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • 网间Oracle的连接,远程连接Oracle服务器??
  • 请教:.profile中:if [ -d /opt/oracle/db01/app/oracle/product/9.2.0 ]是什么意思?
  • 在linux 中如何删除oracle db 与卸载oracle.
  • linux下安装oracle后使用命令行启动的方法 linux启动oracle


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,