数据库基础知识五:自治事务

自治事务详解

自治事务
PRAGMA AUTONOMOUS_TRANSACTION中文翻译过来叫“自治事务”,对于定义成自治事务的Procedure,实际上相当于一段独立运行的程序段,这段程序不依赖于主程序,也不干涉主程序。

自治事务常用于
事务的原子性会使将错误信息记入数据库表中变得很困难,因为当事务失败重新运行时,用来编写日志条目的INSERT语句还未完成。自治事务能独立地被提交或重新运行,而不影响正在运行的事务。因此成了编写错误日志表格的理想形式。

自治事务的特点
1:这段程序不依赖于原有Main程序,比如Main程序中有未提交的数据,那么在自治事务中是查找不到的。
2:在自治事务中,commit或者rollback只会提交或回滚当前自治事务中的DML,不会影响到Main程序中的DML。

自治事务可用于
匿名块
触发器
存储过程

用法:

 PROCEDURE insert_itf_claim_form_status(x_itf_id    OUT NUMBER,
                                         p_form_code IN VARCHAR2,
                                         p_action    IN VARCHAR2,
                                         p_user_id   NUMBER) IS
    PRAGMA AUTONOMOUS_TRANSACTION;
  
    v_record itf_qms_claim_form_status%ROWTYPE;
  BEGIN
    SELECT qms_claim_form_status_s.nextval
      INTO x_itf_id
      FROM dual;
    v_record.itf_qms_claim
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值