Triggers in Oracle

1 отговора 211 прегледа
#1

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 пак същата дивотия ....
Къде по дяволите бъркам... нещо съвсем запецнах.... и затъпях...
сигурно е някаква простотийка от моя страна, ама.....

Редактирано от Aйeз Ceдaй на

Отговор
в отговор на Aйeз Ceдaй #2

Re: Triggers in Oracle

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

Отговор