Sequência de Triggers

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Informações do Ambiente:
* Versão do Oracle: 10.2.0.3.0
* Sistema Operacional: Windows Server

Pessoal, boa tarde.

To com uma dúvida cruel, mas, nunca me deparei com a situação e, como me perguntaram, resolvi repassar aos experts aqui:

Situação:
Tenho 07 triggers em uma tabela.

Dúvida:
Qual a ordem de disparo destas triggers, supondo que duas delas (ou mais), são de before insert?

É a ordem de criação do trigger? Como o banco interpreta essa situação?

Muito obrigado.
gilbertoca
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 372
Registrado em: Ter, 24 Jan 2006 3:33 pm
Localização: Palmas - TO
Contato:

Rapaz, good question! rs rs
Até o momento não tive essa necessidade, saber a sequência de execução de gatilhos.
Mas a documentação é muito boa:
Execução de Gatilhos: http://download.oracle.com/docs/cd/B193 ... m#CNCPT418

Ordem: http://download.oracle.com/docs/cd/B193 ... sthref1179

UPDATE:
Para não ficar sem uma resposta completa:
Oracle fires multiple triggers in an unspecified, random order, if more than one trigger of the same type exists for a given statement; that is, triggers of the same type for the same statement are not guaranteed to fire in any specific order.
Gilberto
Editado pela última vez por gilbertoca em Qui, 24 Jul 2008 11:31 am, em um total de 1 vez.
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Valeu mais uma vez Gilberto.
Show de bola o link.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

A partir do oracle 11g tem como definir a ordem de execução das triggers:
http://glufke.net/2009/05/14/execucao-o ... oracle11g/

:-o
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Caso você esteja usando a ordem na execução das triggers, é possível consultar através dessa query:

Selecionar tudo

select
  trigger_owner,
  trigger_name,
  referenced_trigger_owner,
  referenced_trigger_name,
  ordering_type
from
  dba_trigger_ordering;
Responder
  • Informação