本文转载自:http://www.cnblogs.com/linjiqin/archive/2011/04/18/2019990.html

1、事务用于确保数据的一致性,由一组相关的DML语句组成,该组DML语句所执行的操作要么全部确认,要么全部取消。
2、当执行事务操作(DML)时,Oracle会在被作用的表上加锁,以防止其他用户改变表结构,同时也会在被作用的行上加行锁,以防止其他事务在相应行上执行DML操作。
3、当执行事务提交或事务回滚时,Oracle会确认事务变化或回滚事务、结束事务、删除保存点、释放锁。
4、提交事务(COMMIT)确认事务变化,结束当前事务、删除保存点,释放锁,使得当前事务中所有未决的数据永久改变。
5、保存点(SAVEPOINT)在当前事务中,标记事务的保存点。
6、回滚事务(ROLLBACK)回滚整个事务,删除该事务所定义的所有保存点,释放锁,丢弃所有未决的数据改变。
7、回滚事务到指定的保存点(ROLLBACK TO SAVEPOINT)回滚当前事务到指定的保存点,丢弃该保存点创建后的任何改变,释放锁。
8、当执行DDL、DCL语句,或退出SQL*PLUS时,会自动提交事务;
9、事务期间应避免与使用者互动;
10、查询数据期间,尽量不要启动事务;
11、尽可能让事务持续地越短越好;
12、在事务中尽可能存取最少的数据量

create or replace procedure stu_proc
(
v_id in number,
v_name in varchar2,
v_age in number,
v_msg out varchar2
) as
begin
insert into student(id, sname, age) values (v_id, v_name, v_age);
commit;
v_msg:='添加成功';
exception
when others then
rollback;
v_msg:='失败成功';
RAISE_APPLICATION_ERROR(-20010, 'ERROR:违反唯一索引约束!');
  --OU_MSG    := SQLERRM; 这个是获取到的异常
end;

(转)Oracle存储过程中的事务的更多相关文章

  1. 在ORACLE存储过程中创建临时表

    在ORACLE存储过程中创建临时表 存储过程里不能直接使用DDL语句,所以只能使用动态SQL语句来执行 --ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截 ...

  2. Oracle存储过程中异常Exception的捕捉和处理

    Oracle存储过程中异常的捕捉和处理 CREATE OR REPLACE Procedure Proc_error_process ( v_IN in Varchar2, v_OUT Out Var ...

  3. 存储过程中使用事务,sql server 事务,sql事务

    一.存储过程中使用事务的简单语法       在存储过程中使用事务时非常重要的,使用数据可以保持数据的关联完整性,在Sql server存储过程中使用事务也很简单,用一个例子来说明它的语法格式: 代码 ...

  4. Sqlserver 存储过程中结合事务的代码

    Sqlserver 存储过程中结合事务的代码  --方式一 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ ...

  5. Oracle存储过程中异步调用的实际操作步骤

    本文标签:Oracle存储过程 我们都知道在Oracle数据库的实际应用的过程中,我们经常把相关的业务处理逻辑,放在Oracle存储过程中,客户端以通过ADO来进行相关的调用  .而有些相关的业务逻辑 ...

  6. 存储过程中使用事务与try catch

    一.存储过程中使用事务的简单语法 在存储过程中使用事务时非常重要的,使用数据可以保持数据的关联完整性,在Sql server存储过程中使用事务也很简单,用一个例子来说明它的语法格式: 代码 : ) ) ...

  7. SQL中存储过程中使用事务,并且加入异常处理机制.

    --存储过程中使用事务,并且加入异常处理机制. -- ============================================= CREATE PROCEDURE [dbo].[UP_ ...

  8. ORACLE存储过程中%TYPE和%ROWTYPE的区别

    ORACLE存储过程中%TYPE和%ROWTYPE的区别 在存储过程中%TYPE和%ROWTYPE常用来在PL/SQL中定义变量 因为 t_emp emp%rowtype ;这个语句的意思是 定义一个 ...

  9. Oracle存储过程中跳出循环的写法

    注:本文来源于: <  Oracle存储过程中跳出循环的写法   > Oracle存储过程中跳出循环的写法 记录exit和return的用法 1:exit用来跳出循环 loop IF V_ ...

随机推荐

  1. JavaEE 技术体系

    JavaEE 技术体系总结: 一:常见模式与工具 设计模式,流行的框架与组件 常见的设计模式,编码必备 Spring5,做应用必不可少的最新框架 MyBatis,玩数据库必不可少的组件 二:工程化与工 ...

  2. centos下使用fdisk扩展分区容量大小

    硬盘空间为20G,VMware增加磁盘大小,需要再增加10G空间 扩展完后,重启系统,再次使用fdisk -l查看,会发现硬盘空间变大了: 重新创建分区,调整分区信息 本次实验主要对/dev/sda4 ...

  3. xml、json的序列化与反序列化

    xml数据 : XmlSerializer.Serialize   与  XmlSerializer.Deserialize,使用起来稍有些复杂,需要对 “实体模型” 的“对应属性”  进行  节点特 ...

  4. 【git】常用命令大全

    Git常用操作命令收集: 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git   后边接仓库文件地址 查看远程仓库:$ gi ...

  5. SQL Server中的联合主键、聚集索引、非聚集索引

    我们都知道在一个表中当需要2列以上才能确定记录的唯一性的时候,就需要用到联合主键,当建立联合主键以后,在查询数据的时候性能就会有很大的提升,不过并不是对联合主键的任何列单独查询的时候性能都会提升,但我 ...

  6. MSSQL数据库分区表

    http://blog.csdn.net/lgb934/article/details/8662956 http://database.9sssd.com/mssql/art/951

  7. Activity的生命周期,BACK键和HOME对生命周期的影响

    下面这张图详细的描述了Activity的整个生命周期: 直接上代码,注意看注释: [java] view plaincopy public class HelloActivity extends Ac ...

  8. [ASP.NET] 修改web站点的默认编程语言

    当你点右键新建web窗体或者新建类的时候,默认编程语言是什么?有时候是C#,有时候是VB. 你找遍了所有配置,从web.config到iis express配置到sln文件,硬是没找到vs如何决定编程 ...

  9. Epoll 实例

    服务端调试: [test@cs2 epoll]$ g++ epoll_server.cpp -o epoll_server -lpthread [test@cs2 epoll]$ ./epoll_se ...

  10. Visual Studio和Sublime Text全系列激活码

    自己经常用,做个备份 VS2012 Microsoft Visual Studio Ultimate 2012 旗舰版 有效注册密钥: YKCW6-BPFPF-BT8C9-7DCTH-QXGWC Mi ...