20. april 2001 - 18:01Der er
2 kommentarer og 1 løsning
Fejl i trigger
Ok jeg har nedenstående tabel og trigger når jeg laver i update på tabellen får jeg følgende fejl:
FEJL i linie 1: ORA-04091: tabellen SYSTEM.SKATTEOPL2 muterer, trigger/funktion kan ikke læse den ORA-06512: ved \"SYSTEM.GET_DATE\", linje 6 ORA-04088: fejl under udførelse af triggeren \'SYSTEM.GET_DATE\'
Trigger: create or replace trigger get_date before insert or update of løn on skatteopl2 for each row when (user != \'system\') Begin if (:Old.løn != 0) then update skatteopl2 set status=\'i\' where løn=:new.løn; update skatteopl2 set dato=sysdate where løn=:new.løn; else update skatteopl2 set status=\'u\' where løn=:new.løn; update skatteopl2 set dato=sysdate where løn=:new.løn; end if; end;
Tabel: NAVN LØN FRADRAG TRÆKPRO S DATO
Oda Hansen 32456 2000 45 Petrine Nielsen26476 2000 42 Hans Petersen30453,56 2000 46 Peter Hansen3245 2000 45 Svend Olsen 16476 2000 42 Jens Arnesen7453,56 1200 46
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Når oracle kaster en mutating trigger exception er det for at undgå en uendelig løkke.
Så du skal undgå at lave en update i en update trigger. Prøv istedet følgende.
create or replace trigger get_date before insert or update of løn on skatteopl2 for each row when (user != \'system\') Begin if (:Old.løn != 0) then :new.status:=\'i\'; :new. set dato=sysdate where løn=:new.løn; else update skatteopl2 set status=\'u\' where løn=:new.løn; update skatteopl2 set dato=sysdate where løn=:new.løn; end if; end;
create or replace trigger get_date before insert or update of løn on skatteopl2 for each row when (user != \'system\') Begin if (:Old.løn != 0) then :new.status:=\'i\'; :new.dato:=sysdate; else :new.status:=\'u\'; :new.dato:=sysdate; end if; end;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.