1. 在Pl/sql 中使用 sql

   1:  /*
   2:   * 一个 pl/sql 语句块, 只是一个容器, 是表明一个整体的容器, 容器里可以放置多个sql语句
   3:  */
   4:   
   5:  declare 
   6:      v_zip    zipcode.zip%type;
   7:      v_user    zipcode.created_by%type;
   8:      v_date    zipcode.created_date%type;
   9:  begin
  10:      -- statement 1
  11:      select 43438, user, sysdate
  12:        into v_zip, v_user, v_date
  13:        from dual;
  14:      
  15:      -- statement 2
  16:      insert into zipcode(zip, created_by, careate_date, modified_by,
  17:                          modified_date)
  18:      values(v_zip, v_user, v_date, v_user,
  19:              v_date);
  20:  end;
  21:  /
  22:  show errors;
  23:      

2. 在 pl/sql 中使用 commit, rollback, savepoint

   1:  /*
   2:   * ROLLBACK [WORK] to SAVEPOINT name;
   3:  */
   4:   
   5:  begin
   6:      insert into student(student_id, last_name, zip, reistration_date,
   7:                          created_by, created_date, modified_by, modified_date)
   8:      values(student_id_seql.nextval, 'Tashi', 10015, '01-一月-99',
   9:              'Student', '01-一月-99', 'studenta', '01-一月-99');
  10:      savepoint A;        -- A is work name
  11:      
  12:      insert into student(student_id, last_name, zip, reistration_date,
  13:                          created_by, created_date, modified_by, modified_date)
  14:      values(student_id_seql.nextval, 'bbb', 10015, '01-一月-99',
  15:              'Student', '01-一月-99', 'studentb', '01-一月-99');
  16:      savepoint B;        -- B is work name
  17:      
  18:      insert into student(student_id, last_name, zip, reistration_date,
  19:                          created_by, created_date, modified_by, modified_date)
  20:      values(student_id_seql.nextval, 'ccc', 10015, '01-一月-99',
  21:              'Student', '01-一月-99', 'studentc', '01-一月-99');
  22:      savepoint C;        -- C is work name
  23:      
  24:      rollback to b;
  25:  end;

如上代码执行完后, 由于 rollback to b, 所以, 第3段代码执行的插入操作就会被rollback, 所以最后的结果是插入了2条记录.

所以, 综上, rollback 到之前的一个保存点 savepoint, 那么该保存点之下的所有sql语句都会被rollback, 而保存点savepoint之上的sql没有被rollback.

pl/sql 实例精解 03的更多相关文章

  1. pl/sql 实例精解 05

    本章主要讨论 case 语句 1: case [SELECTOR] 2: when expression 1 then statement 1; 3: when expression 2 then s ...

  2. pl/sql 实例精解 04

    本章主要讨论, IF 语句的应用. 1: if condition1 then 2: statement1 3: elsif condition2 then 4: statement2 5: else ...

  3. ORACLE PL/SQL 实例精解之第六章 迭代控制之一

    6.1 简单循环 简单循环,就想其名称一张,是一种最基本循环.简单循环具有如下结构 LOOP STATEMENT 1; STATEMENT 2; ... STATEMENT N; END LOOP; ...

  4. ORACLE PL/SQL 实例精解之第三章 PL/SQL中的SQL

    3.1 在PL/SQL中使用DML 在PL/SQL语块中,两种变量赋值a. := 初始化.b. select into语法,PL/SQL语块的声明部分被声明的变量,后期可以使用选择语句进行赋值. 3. ...

  5. ORACLE PL/SQL 实例精解之第二章 通用编程语言基础

    通用编程语言基础 2.1PL/SQL编程基础 1. 字符类型:支持四中类型字符:字母,数字,符号和空格,组合一个或多个字符就会创建一个词汇单元 2. 词汇单元 a.标识符必须以字符开头 b.保留字是p ...

  6. ORACLE PL/SQL 实例精解之第一章 PL/SQL概念

    1.传统一层一层传数据,而PLSQL作为独立的单元返回客户端,减少查询,减少网路传输的往返,高效 2.PL/SQL语句块 分为两种:命名(子程序,函数,包保存在数据库中,后期可以根据名称进行引用),匿 ...

  7. pl/sql 实例精解 06

    1. 简单循环 1: LOOP 2: statement1; 3: statement2; 4: EXIT WHEN condition; 5: END LOOP; 6: statement3; 也可 ...

  8. pl/sql 实例精解 08

    1: EXCEPTION 2: WHEN EXCEPTION_NAME THEN 3: ERROR-PROCESSING STATEMENTS; 写在 begin 与 end 的之间的处理异常块. 常 ...

  9. pl/sql 实例精解 07

    这章主要讨论 oracle11g 新特性, continue, continue when 语句 continue 的作用同其他编程语言一样. continue when condition 只是当条 ...

随机推荐

  1. Spring 自定义配置类bean

    <!-- 引入配置文件 --> <bean id="propertyConfigurer" class="org.springframework.bea ...

  2. 绘制函数y=(x^2-2x+1)/(x^2+x+2)的曲线

    代码: <!DOCTYPE html> <html lang="utf-8"> <meta http-equiv="Content-Type ...

  3. 深入分析JavaWeb Item24 -- jsp2.X自己定义标签开发进阶

    一.简单标签(SimpleTag) 由于传统标签使用三个标签接口来完毕不同的功能,显得过于繁琐.不利于标签技术的推广, SUN公司为减少标签技术的学习难度,在JSP 2.0中定义了一个更为简单.便于编 ...

  4. Rxjava2.0 链式请求异常处理

    使用Rxjava2.0的过程中,难免会遇到链式请求,而链式请求一般都是第一个抛异常,那么后面的请求都是不会走的.现在来讨论一下链式请求的一种异常处理方法.例如: 一个登录-->通过登录返回的to ...

  5. Python多线程问题的资料查找与汇总

    Python多线程问题的资料查找与汇总 声明: 1)本报告由博客园bitpeach撰写,版权所有,免费转载,请注明出处,并请勿作商业用途. 2)若本文档内有侵权文字或图片等内容,请联系作者bitpea ...

  6. java数据库编程:使用元数据分析数据库

    databaseMetaData 使用元数据可以分析数据库基本信息,包括版本,数据库名称,或者指定表的主键. 代码实例 package 类集; import java.sql.Connection ; ...

  7. 为什么说Kindle难圆“中国梦”? 支撑Kindle模式成功的要素,在当下中国并不太具备

    http://www.huxiu.com/article/12993/1.html 6月7日更新:Kindle入华终于尘埃落定,苏宁将在下午4点在北京30家店面同时销售,首批产品为Kindle Pap ...

  8. 使用QQ互联登录应用

    QQ登录集成插件简介 互联网应用越来越多,通常每一个应用都会要求用户注册登录,粗略估记一下,QQ,微博,微信,银行帐号.邮箱,招聘网站账户,淘宝帐号,支付宝帐号,公司OA帐号....粗略算一下,十几个 ...

  9. html中的标签分类

    单标签 <br> <hr> <img> <input> <param> <meta> <link> 双标签 < ...

  10. 【ASP.NET MVC系列】详解View

    本篇文章内容属于ASP.NET MVC系列视图篇,主要讲解View,大致内容如下: 1.Views文件夹讲解 2.View种类 3.Razor语法 4.对视图的基本操作 一   Views文件夹 (一 ...