Bom dia
estou com o seguinte problema, uma tabela possui 03 triggers. 02 executadas após o comando DML (after) e 01 executada antes (before).
Uma das triggers executada depois, mais especificamente a que cria logs da tabela, as vezes não é executada. Minha dúvida é, como não consigo determinar a ordem de execução das triggers (versão do banco Oracle Database 10g Release 10.2.0.4.0 - 64bit Production) se uma das triggers der erro durante o processo mesmo o bloco possuindo tratamento de exception (exception when others then null;) a outra trigger é executada?
Erro trigger de log não executada em tabela com 02 triggers
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
Tora34,
Apesar de não ser possível especificar a ordem de execução no 10g (como o Fabio explicou), talvez você pudesse revisar suas três triggers.
Quem sabe não é possível você concentrar os procedimentos de duas triggers em uma? Veja se nas respostas deste tema (http://stackoverflow.com/questions/8319 ... r-sequence) você conseguiria encontrar uma alternativa para seu problema.
Abraços,
Sergio
Apesar de não ser possível especificar a ordem de execução no 10g (como o Fabio explicou), talvez você pudesse revisar suas três triggers.
Quem sabe não é possível você concentrar os procedimentos de duas triggers em uma? Veja se nas respostas deste tema (http://stackoverflow.com/questions/8319 ... r-sequence) você conseguiria encontrar uma alternativa para seu problema.
Abraços,
Sergio
-
- Rank: Analista Pleno
- Mensagens: 108
- Registrado em: Qua, 12 Nov 2008 6:01 pm
- Localização: Campo Mourão PR
Renato Pasquini
Oracle Developer
Oracle Developer
Bom dia,
agradeço pelo retorno, o objetivo não é agrupar as duas triggers em uma ou determinar a ordem de execução (como dito na mensagem original que utilizo a versão 10 e tal funcionalidade não funciona).
O objetivo é tentar entender a execução de duas triggers e se uma influencia na execução da outra.
Em uma destas triggers criei um mecanismo para incluir mensagens de erro em uma tabela caso alguma exceção seja disparada, o erro apresentado é "ORA-06508: PL/SQL: could not find program unit being called".
Porém este erro não ocorre a toda atualização desta tabela, todos os usuários que a atualizam possuem a mesma ROLE.
Não sei se foi coincidência, mas no dia em que este erro foi registrado, teve uma alteração de estrutura nesta tabela.
Li alguns posts no fórum "ASKTOM" onde o mesmo explicou se algum objeto desta trigger fica invalido (direto ou indiretamente) e algum usuário está com sessão aberta, ao tentar atualizar esta tabela esta mensagem de erro é apresentada.
Porém, não consegui simular este cenário.
Mas agradeço o esforço dos senhores, continuarei minha pesquisa para conseguir identificar esta falha.
Grande abraço. Nos encontramos na GOUBTECHDAY no próximo dia 02/08
agradeço pelo retorno, o objetivo não é agrupar as duas triggers em uma ou determinar a ordem de execução (como dito na mensagem original que utilizo a versão 10 e tal funcionalidade não funciona).
O objetivo é tentar entender a execução de duas triggers e se uma influencia na execução da outra.
Em uma destas triggers criei um mecanismo para incluir mensagens de erro em uma tabela caso alguma exceção seja disparada, o erro apresentado é "ORA-06508: PL/SQL: could not find program unit being called".
Porém este erro não ocorre a toda atualização desta tabela, todos os usuários que a atualizam possuem a mesma ROLE.
Não sei se foi coincidência, mas no dia em que este erro foi registrado, teve uma alteração de estrutura nesta tabela.
Li alguns posts no fórum "ASKTOM" onde o mesmo explicou se algum objeto desta trigger fica invalido (direto ou indiretamente) e algum usuário está com sessão aberta, ao tentar atualizar esta tabela esta mensagem de erro é apresentada.
Porém, não consegui simular este cenário.
Mas agradeço o esforço dos senhores, continuarei minha pesquisa para conseguir identificar esta falha.
Grande abraço. Nos encontramos na GOUBTECHDAY no próximo dia 02/08
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes