首页  >  文章  >  数据库  >  oracle存储过程的事务有什么用

oracle存储过程的事务有什么用

青灯夜游
青灯夜游原创
2022-01-25 17:30:191886浏览

在oracle存储过程中,事务用于确保数据的一致性,由一组相关的DML语句组成,该组DML语句所执行的操作要么全部确认,要么全部取消。当执行事务操作时,会在被作用的表和行上加锁,以防止其他用户改变表结构,或其他事务在相应行上执行DML操作。

oracle存储过程的事务有什么用

本教程操作环境:Windows7系统、Oracle 11g版、Dell G3电脑。

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;

推荐教程:《Oracle教程

以上是oracle存储过程的事务有什么用的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn