|
Тема |
Triggers in Oracle |
|
Автор |
Aйeз Ceдaй ((бойна)) |
|
Публикувано | 31.05.06 17:41 |
|
|
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й на 31.05.06 17:42.
|
| |
|
|
|