我自己写了2种 但是好像都不对NO.1create or replace trigger AupdateB
after update on a
for each rowdeclare ps_phone varchar2(512);
ps_content varchar2(512);
ps_fsry varchar2(512);
ps_ret varchar2(512);begin
if updating then
ps_phone := :old.dx_phone;
ps_content := :new.dx_hfnr;
ps_fsry := :new.dx_hfr;
ps_ret := :new.dx_zxjg;
p_push@dblink_b(ps_phone, ps_content,ps_fsry,ps_ret);
end if;
end;
NO.2create or replace trigger AupdateB
after update on a
for each rowdeclare ps_phone varchar2(512);
ps_content varchar2(512);
ps_fsry varchar2(512);
ps_ret varchar2(512);begin
if updating then
select :old.dx_phone, :new.dx_hfnr, :new.dx_hfr, :new.dx_zxjg
into ps_phone, ps_content, ps_fsry, ps_ret
from a
where dx_id = :old.dx_id;
p_push@dblink_b(ps_phone, ps_content,ps_fsry,ps_ret);
end if;
end;第一个执行程序没报错 但是好像没成功
第二个触发器 执行程序的时候 还要报错
java.sql.SQLException: ORA-04091: 表a发生了变化,触发器/函数不能读
ORA-06512: 在"AupdateB", line 10
ORA-04088: 触发器 'AupdateB执行过程中出错
求解! 谢谢
after update on a
for each rowdeclare ps_phone varchar2(512);
ps_content varchar2(512);
ps_fsry varchar2(512);
ps_ret varchar2(512);begin
if updating then
ps_phone := :old.dx_phone;
ps_content := :new.dx_hfnr;
ps_fsry := :new.dx_hfr;
ps_ret := :new.dx_zxjg;
p_push@dblink_b(ps_phone, ps_content,ps_fsry,ps_ret);
end if;
end;
NO.2create or replace trigger AupdateB
after update on a
for each rowdeclare ps_phone varchar2(512);
ps_content varchar2(512);
ps_fsry varchar2(512);
ps_ret varchar2(512);begin
if updating then
select :old.dx_phone, :new.dx_hfnr, :new.dx_hfr, :new.dx_zxjg
into ps_phone, ps_content, ps_fsry, ps_ret
from a
where dx_id = :old.dx_id;
p_push@dblink_b(ps_phone, ps_content,ps_fsry,ps_ret);
end if;
end;第一个执行程序没报错 但是好像没成功
第二个触发器 执行程序的时候 还要报错
java.sql.SQLException: ORA-04091: 表a发生了变化,触发器/函数不能读
ORA-06512: 在"AupdateB", line 10
ORA-04088: 触发器 'AupdateB执行过程中出错
求解! 谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货