oracle sql ile alakalı nereye konu açacağımı bilemedm ve buraya başlık açtım. Bir sorum olacaktı.
amacım trigger içinden procedure çağırıp tablodaki salary alanında değişiklik yapmak fakat triggerı tetiklemek için update komutu yazıp çalıştırdığımda bu hatayı alıyorum.
ORA-04091: table HW3.TEACHERS is mutating, trigger/function may not see it ORA-06512: at "HW3.ARTIRMA", line 7 ORA-06512: at "HW3.TRGR", line 2 ORA-04088: error during execution of trigger 'HW3.TRGR'
create or replace procedure artirma(depart number,percent number) is begin update teachers set salary=salary*((100+percent)/100) where dno=depart; end artirma; ------------------------------------------------ create or replace trigger trgr after update on teachers for each row begin artirma(:old.dno,((((:new.salary)-(:old.salary))/:old.salary)*100)); end; ---------------------------------------------- update teachers set salary=salary*1.8; where dno=3;
şimdiden çok teşekkür ederim.
Edit : düzeltme
< Bu mesaj bu kişi tarafından değiştirildi technical death metal -- 14 Mayıs 2014; 20:47:25 >
1. sayfa
Hizmet kalitesi için çerezleri kullanabiliriz, DH'yi kullanırken depoladığımız çerezlerle ilgili veri politikamıza gözatın.
oracle sql ile alakalı nereye konu açacağımı bilemedm ve buraya başlık açtım. Bir sorum olacaktı.
amacım trigger içinden procedure çağırıp tablodaki salary alanında değişiklik yapmak fakat triggerı tetiklemek için update komutu yazıp çalıştırdığımda bu hatayı alıyorum.
ORA-04091: table HW3.TEACHERS is mutating, trigger/function may not see it
ORA-06512: at "HW3.ARTIRMA", line 7
ORA-06512: at "HW3.TRGR", line 2
ORA-04088: error during execution of trigger 'HW3.TRGR'
create or replace procedure artirma(depart number,percent number)
is
begin
update teachers
set salary=salary*((100+percent)/100)
where dno=depart;
end artirma;
------------------------------------------------
create or replace trigger trgr
after update on teachers
for each row
begin
artirma(:old.dno,((((:new.salary)-(:old.salary))/:old.salary)*100));
end;
----------------------------------------------
update teachers
set salary=salary*1.8;
where dno=3;
şimdiden çok teşekkür ederim.
Edit : düzeltme
< Bu mesaj bu kişi tarafından değiştirildi technical death metal -- 14 Mayıs 2014; 20:47:25 >