写了个触发器,但在deleting的时候出错,inserting没问题。请各位指教,错在何处。
declare
v_rkrq a.cljyrkd.rq%type;
v_fkrq a.cljyrkd.rq%type;
v_qx a.cl.fkqx%type;
begin
select a.cljyrkd.rq into v_rkrq from a.cljyrkd where a.cljyrkd.rkdbh=:new.rkdbh;
select a.cl.fkqx into v_qx from a.cl where a.cl.cldh=:new.cldh;
v_fkrq := add_months(v_rkrq , v_qx);
if inserting then
insert into a.yfzk(gfdh,rkrq,fkrq,rkdbh,cldh,je) values(:new.gfdh,v_rkrq,v_fkrq,:new.rkdbh,:new.cldh,:new.sss*:new.dj);
elsif deleting then
delete from a.yfzk where a.yfzk.gfdh= :old.gfdh and a.yfzk.cldh= :old.cldh and a.yfzk.rkdbh= :old.rkdbh;
elsif updating then
delete from a.yfzk where a.yfzk.gfdh= :old.gfdh and a.yfzk.cldh= :old.cldh and a.yfzk.rkdbh= :old.rkdbh;
insert into a.yfzk(gfdh,rkrq,fkrq,rkdbh,cldh,je) values(:new.gfdh,v_rkrq,v_fkrq,:new.rkdbh,:new.cldh,:new.sss*:new.dj);
end if;
end af_yfzk_cljyrkdmx;
declare
v_rkrq a.cljyrkd.rq%type;
v_fkrq a.cljyrkd.rq%type;
v_qx a.cl.fkqx%type;
begin
select a.cljyrkd.rq into v_rkrq from a.cljyrkd where a.cljyrkd.rkdbh=:new.rkdbh;
select a.cl.fkqx into v_qx from a.cl where a.cl.cldh=:new.cldh;
v_fkrq := add_months(v_rkrq , v_qx);
if inserting then
insert into a.yfzk(gfdh,rkrq,fkrq,rkdbh,cldh,je) values(:new.gfdh,v_rkrq,v_fkrq,:new.rkdbh,:new.cldh,:new.sss*:new.dj);
elsif deleting then
delete from a.yfzk where a.yfzk.gfdh= :old.gfdh and a.yfzk.cldh= :old.cldh and a.yfzk.rkdbh= :old.rkdbh;
elsif updating then
delete from a.yfzk where a.yfzk.gfdh= :old.gfdh and a.yfzk.cldh= :old.cldh and a.yfzk.rkdbh= :old.rkdbh;
insert into a.yfzk(gfdh,rkrq,fkrq,rkdbh,cldh,je) values(:new.gfdh,v_rkrq,v_fkrq,:new.rkdbh,:new.cldh,:new.sss*:new.dj);
end if;
end af_yfzk_cljyrkdmx;
出错信息是:database error code : 1 就没什么了,所以看不大出来,错在什么地方。