Prazer em desenvolver software
C:\>sqlplus scott/tiger
SQL*Plus: Release 11.2.0.1.0 Production on Qua Ago 3 21:34:36 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Conectado a:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> create table t1 (id number);
Tabela criada.
SQL> create or replace trigger trg_teste_01
before insert on t1
for each row
begin
dbms_output.put_line('trigger trg_teste_01');
end;
Gatilho criado.
SQL> create or replace trigger trg_teste_02
before insert on t1
for each row
begin
dbms_output.put_line('trigger trg_teste_02');
end;
Gatilho criado.
SQL> create or replace trigger trg_teste_03
before insert on t1
for each row
begin
dbms_output.put_line('trigger trg_teste_03');
end;
Gatilho criado.
Após a criação da tabela e das triggers, irei inserir um registro na tabela T1.
SQL> set serveroutput on
SQL> insert into t1 values (1);
trigger trg_teste_03
trigger trg_teste_02
trigger trg_teste_01
1 linha criada.
SQL> create or replace trigger trg_teste_01
before insert on t1
for each row
begin
dbms_output.put_line('trigger trg_teste_01');
end;
Gatilho criado.
SQL> create or replace trigger trg_teste_02
before insert on t1
for each row
follows trg_teste_01
begin
dbms_output.put_line('trigger trg_teste_02');
end;
Gatilho criado.
SQL> create or replace trigger trg_teste_03
before insert on t1
for each row
follows trg_teste_02
begin
dbms_output.put_line('trigger trg_teste_03');
end;
Gatilho criado.
SQL> insert into t1 values (2);
trigger trg_teste_01
trigger trg_teste_02
trigger trg_teste_03
1 linha criada.
SQL> alter trigger trg_teste_02 disable;
Gatilho alterado.
SQL> insert into t1 values (3);
trigger trg_teste_01
trigger trg_teste_03
1 linha criada.
SQL> drop trigger trg_teste_02;
Gatilho eliminado.
SQL> select object_name,status from user_objects where object_type='TRIGGER';
OBJECT_NAME STATUS
------------------------------ -------
TRG_TESTE_01 VALID
TRG_TESTE_03 INVALID
SQL> insert into t1 values (3);
insert into t1 values (3)
*
ERRO na linha 1:
ORA-04045: erros durante a recompilação/revalidação de SCOTT.TRG_TESTE_03
ORA-04098: gatilho 'SCOTT.TRG_TESTE_03' é inválido e a revalidação falhou
SQL> drop table t1;
drop table t1
*
ERRO na linha 1:
ORA-00604: ocorreu um erro no nível 1 SQL recursivo
ORA-04045: erros durante a recompilação/revalidação de SCOTT.TRG_TESTE_03
ORA-04098: gatilho 'SCOTT.TRG_TESTE_03' é inválido e a revalidação falhou
SQL> alter trigger trg_teste_03 disable;
Gatilho alterado.
SQL> insert into t1 values (4);
trigger trg_teste_01
1 linha criada.
SQL> drop table t1;
Tabela eliminada.
Caso alguém saiba uma forma mais otimizada me mande é sempre bom compartilhar o que aprendemos :).
Comentar
Cara, tem um erro de síntese nas entranhas dos arg para o processo. Use algo mais simple para a aderência total do conteúdo base, da essência do processo.Percebi que suas declarações vão ser "retardadas" a partir do momento que tivermos vários args em relação intro-developer
© 2019 Criado por Ramon Durães.
Ativado por
Você precisa ser um membro de DevBrasil para adicionar comentários!
Entrar em DevBrasil