Triggers in Oracle
1 отговора
211 прегледа
Triggers in Oracle
CREATE OR REPLACE TRIGGER ZWIPHELP_AFTERUPD_PE
after update of pe,pe_stage,pe_qty on zwiphelp
for each row
when ((new.pe_qty>0) and (new.pe=1) and nvl(new.outqty,0)=0)
declare
PRAGMA AUTONOMOUS_TRANSACTION;
begin
if :old.pe_stage =0 then
raise_application_error(-20002, 'Please insert Quality Stage');
end if;
if (nvl(:old.qty,0) < (:new.pe_qty)) then
raise_application_error(-20002, 'The quantity must be less then '||:old.qty);
else --create new line in zwiphelp
insert into zwiphelp(id,idzwip,profilid,qty,stage,treat,eventtime,stlid,lastid)
values(zwiph_seq.nextval, :old.idzwip, :old.profilid, :new.pe_qty, :new.pe_stage,0,sysdate,:old.stlid,:old.id);
end if;
end ZWIPHELP_AFTERUPD_PE;
и гърми на поразия.... на инсерта....
Ако разкарам PRAGMA AUTONOMOUS_TRANSACTION пак същата дивотия ....
Къде по дяволите бъркам... нещо съвсем запецнах.... и затъпях...
сигурно е някаква простотийка от моя страна, ама.....


after update of pe,pe_stage,pe_qty on zwiphelp
for each row
when ((new.pe_qty>0) and (new.pe=1) and nvl(new.outqty,0)=0)
declare
PRAGMA AUTONOMOUS_TRANSACTION;
begin
if :old.pe_stage =0 then
raise_application_error(-20002, 'Please insert Quality Stage');
end if;
if (nvl(:old.qty,0) < (:new.pe_qty)) then
raise_application_error(-20002, 'The quantity must be less then '||:old.qty);
else --create new line in zwiphelp
insert into zwiphelp(id,idzwip,profilid,qty,stage,treat,eventtime,stlid,lastid)
values(zwiph_seq.nextval, :old.idzwip, :old.profilid, :new.pe_qty, :new.pe_stage,0,sysdate,:old.stlid,:old.id);
end if;
end ZWIPHELP_AFTERUPD_PE;
и гърми на поразия.... на инсерта....
Ако разкарам PRAGMA AUTONOMOUS_TRANSACTION пак същата дивотия ....
Къде по дяволите бъркам... нещо съвсем запецнах.... и затъпях...
сигурно е някаква простотийка от моя страна, ама.....
Редактирано от Aйeз Ceдaй на
Re: Triggers in Oracle
Мда...
днес по понеделнишки с нови сили и идеи си разреших проблема...
Работо идеално.... скапания тригер....

днес по понеделнишки с нови сили и идеи си разреших проблема...
Работо идеално.... скапания тригер....