码迷,mamicode.com
首页 > 其他好文 > 详细

ORA-04091: 表 发生了变化, 触发器/函数不能读它

时间:2016-07-19 15:28:57      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:

触发器中新调用了一个存储过程.

触发器:

create or replace trigger tr_credits_wzclorder_clwzjk
    after update on app_wzclorder for each row
declare
    ...
begin
    ...
    p_integral_ticket_refund(:new.ordernumber,:new.userid);
    ...
end;

存储过程:

create or replace procedure p_integral_ticket_refund(in_ordernumber varchar2,
                                                     in_userid      varchar2) is
    ...
begin
    ...
    select count(*) into v_count4 from app_wzclorder where ordernumber = in_ordernumber;
    ...
exception
    when others then
        begin
            ...
        end;
end p_integral_ticket_refund;

报异常:ora-04091: 表 appuser.app_wzclorder 发生了变化, 触发器/函数不能读它

改存储过程:

create or replace procedure p_integral_ticket_refund(in_ordernumber varchar2,
                                                     in_userid      varchar2) is
    ...
PRAGMA AUTONOMOUS_TRANSACTION; -- 自治事务开始
begin
    ...
    select count(*) into v_count4 from app_wzclorder where ordernumber = in_ordernumber;
    ...
COMMIT; -- 自治事务结束
exception
    when others then
        begin
            ...
        end;
end p_integral_ticket_refund;

 

ORA-04091: 表 发生了变化, 触发器/函数不能读它

标签:

原文地址:http://www.cnblogs.com/debiao/p/5684932.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!