Pular para o conteúdo

Fóruns SQL e PL/SQL Trigger Só Executa Primeiro Bloco do Programa Trigger Só Executa Primeiro Bloco do Programa

#92313
fsitja
Participante

    Você tem um begin e 2 END;

    BEGIN
    P_ATUALIZA_SH_PCWMSOUTPUT;
    end;

    :NEW.SEMAFORO := 3;

    END;

    Desculpa chover no desfile dos outros, mas eu não acho adequada essa solução com pragma autonomous_transaction na procedure por um motivo bem simples: se a transação der rollback por qualquer motivo de erro que ocorra na transação original, sua tabela “sh_pcwmsoutput”@logixteste ficará tomada de dados incorretos que não deveriam estar nela.

    A transação lá é independente e a tabela remota vai ficar inconsistente com o estado da tabela na origem.

    Resumindo, acho que o melhor é não fazer isso via trigger e sim controlar no procedimento de origem que está controlando a transação.