A recomendação-padrão, quando o código fica extenso, é vc ter sub- rotinas, a sua trigger ficaria tipo:
CREATE OR REPLACE TRIGGER nomedela.. eventos.. BEGIN proc_faz_inserção; proc_verifica_isso; proc_faz_aquilo; proc_faz-deleção; .... END; é isso, aí fica facílimo pra debugar, tipo, deu erro na rotina de delação, é a proc_faz-deleção que vc vai debugar... Não sabe exatamente onde está o erro, basta ter um breakpoint (ou mesmo um simples dbms_output) antes de cada rotina chamada... É por aí, já que, como eu disse, é ** documentado ** no Oracle que ordem de disparo das triggers de um mesmo tipo é aleatória. E é claro, onde possível vc deveria "enxugar" essa trigger, por exemplo deixando algumas regras de negócio serem resolvidas via constraints, simplificando a lógica usando os recursos nativos do Oracle (como funções analíticas & cia bela)... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, "phbuss" <[EMAIL PROTECTED]> escreveu > > Obrigado pela resposta chiappa... > > Na verdade hoje eu tenho todo o meu código em uma única trigger, mas > ela está um MONSTRO e ficando difícil de se dar manutenção nela. > > Esta minha trigger é da minha tabela de Notas Fiscais do sistema, e o > que eu pretendia dividindo a minha triggers em outras menores é > agrupar os códigos que realizam uma determinada função (baixa de > estoque, cálculo do valor unitário do item, cálculo dos impostos, > etc...) a fim de facilitar a manutenção do código de cada uma destas > partes, só que algumas destas triggers teriam que ser chamadas sempre > antes de outras, a fim de garantir a integridade dos meus dados... > > Se alguém souber de uma outra forma de fazer isso que estou querendo > agradeço desde já. > > Paulo Henrique Buss > PROJEDATA Informática > > --- Em oracle_br@yahoogrupos.com.br, "jlchiappa" <[EMAIL PROTECTED]> escreveu > > > > Colega, o manual "Oracle Database Concepts", cap. 17 - Triggers - , é > > lapidar a respeito : > > > > "Trigger Execution > > > > ... > > Fires multiple triggers in an unspecified order, if more than one > > trigger of the same type exists for a given statement. > > > > OU seja, é POR DESIGN, DOCUMENTADAMENTE, sem ordem definida quando há > > múltiplos triggers. No máximo, no mesmo capítulo o mesmo manual já > > nos garante que as triggers do tipo BEFORE rodam antes, e as do tipo > > AFTER depois, então que se tenha uma trigger como BEFORE e outra como > > AFTER, afora isso no way. > > > > []s > > > > Chiappa > > > > --- Em oracle_br@yahoogrupos.com.br, Paulo Henrique Buss <[EMAIL PROTECTED]> > > escreveu > > > > > > Olá lista, > > > > > > Estou usando Oracle9i Enterprise Edition Release 9.2.0.4.0 e tenho > > o > > > seguinte caso: > > > > > > Em uma tabela eu tenho 2 triggers e preciso garantir que a > > trigger2 > > > seja executada antes da trigger1. Já trabalhei com Firebird e nas > > > triggers deste banco havia um número que definia a ordem de > > execução das > > > triggers, mas no Oracle não encontrei esta opção... > > > > > > Se alguém da lista souber como o Oracle defina a ordem das triggers > > e > > > como eu posso ajustar esta ordem de execução, agradeço desde já. > > > > > > Abraços, > > > > > > Paulo Henrique Buss > > > PROJEDATA Informática > > > > > > -------------------------------------------------------------------------------------------------------------------------- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --------------------------------------------------------------------------------------------------------------------------__________________________________________________________________ Moderador e Fundador: Dorian Anderson Soutto [EMAIL PROTECTED] __________________________________________________________________ Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html