› Fóruns › Banco de dados Oracle › Trigger After Insert › Trigger After Insert
Olá,
Então… a atualização disparada por uma trigger na mesma tabela que está associada a trigger… isso é que causa o erro… table is mutanting…
Você poderia utilizar o seguinte código (mas é melhor testar)
CREATE OR REPLACE TRIGGER TRG_AFTER_INS_SE3010
AFTER INSERT ON se3010
FOR EACH ROW WHEN (new.E3_FILORIG = ' ')
BEGIN
:new.E3_FILORIG := :new.E3_FILIAL;
END trg_after_ins_se3010;
/
Pois você está mudando um valor da mesma tabela na mesma linha…
Se isso não der certo, vamos a opção dois que não recomendo mas se não tiver jeito….
CREATE OR REPLACE TRIGGER TRG_AFTER_INS_SE3010
AFTER INSERT ON se3010
FOR EACH ROW WHEN (new.E3_FILORIG = ' ')
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
UPDATE se3010
SET E3_FILORIG = E3_FILIAL
WHERE R_E_C_N_O_ = :new.r_e_c_n_o_;
END trg_after_ins_se3010;
/
[]s Ishii