› Fóruns › SQL e PL/SQL › Trigger Só Executa Primeiro Bloco do Programa › Trigger Só Executa Primeiro Bloco do Programa
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.