zoukankan      html  css  js  c++  java
  • oracle存储过程的事务处理

    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:违反唯一索引约束!');
    end;
  • 相关阅读:
    一步步学习MDL[3]
    一步步学习MDL[0]
    .net下ckeditor+ckfinder+SyntaxHighlighter三集成demo
    页面跳转如何进入一个嵌套在Iframe中的页面中
    解决iframe,div在移动设备上实现局部刷新的方法
    SQL三种东西永远不要放到数据库里
    悟透JavaScript
    Js 常用日期汇总
    js_兼容IE和FF
    SQL中字符串类型转换为时间类型
  • 原文地址:https://www.cnblogs.com/linjiqin/p/2019990.html
Copyright © 2011-2022 走看看