Pular para o conteúdo

Fóruns Banco de dados Oracle Trigger After Insert Trigger After Insert

#101019
Ishii
Participante

    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