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
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
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
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi technical death metal -- 14 Mayıs 2014; 20:47:25 >