- Este tópico contém 8 respostas, 7 vozes e foi atualizado pela última vez 17 anos, 4 meses atrás por
Ishii.
-
AutorPosts
-
4 de novembro de 2008 às 4:58 pm #83502
Manu
ParticipanteBom dia!
Estou com o seguinte problema. Tenho várias triggers que são disparadas a partir da mesma tabela. Porém elas não podem ser disparadas
aleatóriamente, precisam seguir uma ordem definida. Alguém sabe como
fazer isto no Oracle 10g e 9i? Se não houver solução no 9i não há problemas. Basta para o 10g?Muito obrigado!
4 de novembro de 2008 às 5:05 pm #83505Regis Araujo
ParticipanteManu, boa tarde!
E se você chamar no final do seu codigo dentro da trigger a proxima trigger?? E assim, sussessivamente…
Mas se houver uma maneira bem mais simples e correta, eu tbm gostaria de saber…
Abraços…
4 de novembro de 2008 às 5:23 pm #83508Manoel872
ParticipanteTriggers não são gatilhos que são disparadas ao evento? Teria como ele chamar a trigger? Confuso!
4 de novembro de 2008 às 5:35 pm #83510Regis Araujo
ParticipanteManoel,
você esta certissimo…
Equivoco meu…
Manu,
Desculpe a resposta..
O Manoel esta certo, a Trigger somente é disparada com um determinado evento na tabela, creio que você somente conseguirá dispara-los em uma ordem se conseguir que os eventos nesta tabela também sigam esta ordem…
4 de novembro de 2008 às 5:58 pm #83511Manu
ParticipanteBoa tarde!
Estive pesquisando e achei na versão 11g uma instrução chamada FOLLOWS
que serve para isso. Ela executa a trigger na orde desejada. Existe algo semelhante no 10g? Pesquisei e não achei nada.Valeu!
4 de novembro de 2008 às 6:57 pm #83515Ricardo Portilho Proni
ParticipanteVocê não pode colocar todo o código das 4 triggers em uma trigger só, na ordem que você quer executar?
Não é o mesmo que uma trigger chamar a outra, é colocar todo seu código PL/SQL junto, na ordem que quer, e uma trigger apenas executa-lo.4 de novembro de 2008 às 8:58 pm #83520Rodrigo Mesquita
ParticipanteSepare as triggers em after, before ou instead of. Se der faça uma pra cada evento, caso não, separe dentro do código por evento
if updating then
…
elsif inserting Then
…
elsif deleting Then
…
end if;
5 de novembro de 2008 às 12:40 am #83535Marcio68Almeida
ParticipanteBom…
Primeiro devo alertar para o grande problema que existe quando colocamos muitas funcionalidades em triggers, se uma der qualquer problema, pode te travar todos os demais processos…
Triggers encadeadas é um problema maior ainda, trigger que altera uma tabela que dispara outra trigger e assim por diante…
Mas…
Se você quizer mesmo, por que não transforma tudo em procedures e a trigger chama as procedures na sequência ???15 de novembro de 2008 às 9:34 pm #83749Ishii
ParticipanteOlá,
Apenas complementando… fiz alguns testes e para triggers com o mesmo tipo de evento (por exemplo after insert) a ordem será:
1) Banco ser criado do zero (sem objetos) por ordem de criação
2) No banco importado: Ordem Alfabetica (por causa da ordem de criação)Mas sempre procure utilizar o minimo possivel as triggers
[]s Ishii
-
AutorPosts
- Você deve fazer login para responder a este tópico.