Pular para o conteúdo

Guia Completo de Triggers e Eventos no Oracle: Definições, Tipos e Exemplos de Uso

Triggers e seus Eventos

Olá, hoje resolvi escrever um pouco sobre um assunto que particularmente gosto muito, mas que por questões de necessidade nunca usei muito nas empresas por onde passei, porém acho extremamente válido falar sobre este assunto, que é sobre “TRIGGERS e seus EVENTOS”.

Bom, começarei pelo básico como por exemplo definições, tipos e alguns exemplos de uso e implementações.

Trigger: Um dos inúmeros tipos de objetos utilizados pelo Oracle, onde você pode através destes executar automaticamente determinados comandos DML (SELECT,INSERT,UPDATE e DELETE), de acordo com o evento que esteja sendo contemplado pelo trigger. Então surge a pergunta, “EVENTOS, que eventos são esses?”, pois bem, abaixo citarei alguns exemplos de eventos de Triggers, os mais utilizados no dia-a-dia mesmo.

Evento: After Insert

– Este tipo de evento pode ser utilizado para quando alguma linha for inserida em determinada tabela, então este trigger que possui o evento de AFTER INSERT será “disparado” automaticamente executando um determinado procedimento ou uma determinada instrução que esteja no corpo do Trigger, veja abaixo um exemplo:

SQL
CREATE OR REPLACE TRIGGER [owner].[nome_trigger]
AFTER INSERT
ON [owner].[nome_tabela]  for each row
begin
[package_name].[procedure_name]( :new.[parametro], :new.[parametro], null, null, :new.[parametro], :new.[parametro], :new.[parametro], '[parametro]');
end;
/

Como podemos ver esse trigger acima irá para cada linha que foi inserida em uma determinada tabela disparar um Package utilizando um determinado Store Procedure que executará uma funcionalidade de um sistema, que pode ser de caracteristicas diversas, cada ambiente tem sua particularidade.

Evento: Before Insert or Update
– Esse é um tipo composto de funcionalidade de um mesmo trigger, onde antes de ocorrer alguma inserção em determinada Tabela de sistema ou algum tipo de atualização será disparado este Trigger especifico para executar uma funcionalidade , de acordo com a necessidade.

SQL
CREATE OR REPLACE TRIGGER [owner].[nome_trigger]
BEFORE INSERT OR UPDATE
ON [owner].[nome_tabela] FOR EACH ROW
begin

[corpo do Trigger]

end;
/

Naturalmente é visivel que contamos com uma gama muito grande de tipos de eventos e formas de combinações desses mesmos eventos para uso do tipo de objeto de banco de dados TRIGGER, e como eu disse anteriormente de acordo com cada tipo de sistema, segmento de atuação, funcionalidades, nós podemos encontrar outros tipos de Triggers, com outros tantos eventos , combinados ou não. Segue mais alguns exemplos de eventos podem ser facilmente encontrados nos corpos das triggers de sistema :

– AFTER DELETE OR INSERT OR UPDATE : Neste evento teremos uma tripla ação por parte do Triggers, onde antes de cada deleção, inserção ou atualização poderá ser executado algum tipo de pré-verificação, ou até mesmo a execução de uma rotina.

– AFTER UPDATE : Como a tradução mesmo sugere ( depois de atualizar), será executada uma rotina de verificação ou até mesmo de atualização de outras tantas tabelas que tenha dependencias com um obejto em comum.

E é isso pessoal, os Triggers são uma ferramenta poderosissima, e se utilizadas com responsabilidade e com objetivos determinados, podem vir a se tornar um trunfo muito bom nas mãos de quem as utiliza, não só para facilitar a execução de rotinas do dia-a-dia como também para automação de processos de verificação e de checklist’s, lembrando sempre que uma boa documentação a respeito do que o Trigger contempla desde a sua necessidade até a construção do seu script de execução são sempre muito bem vindas, e aos olhos de gerentes coordenadores e até mesmo alguns analistas e desenvolvedores isso demonstra que o profissional tem um algo a mais, tem competência, determinação e organização.

Contamos ainda no campo dos TRIGGERS com alguns eventos mais voltados a auditoria, porém isso vai ficar para um próximo Post que virá muito em breve, espero que apreciem este post, fiz com grande prazer e espero que ele elucide ou até mesmo sirva de referencial básico para quem quer que seja.

Obrigado á todos.

Abraço

David Siqueira

David Siqueira

Atuando como DBA Oracle desde 2000, trabalhei em quase todos os grandes grupos de Empresas que utilizam tecnologia Oracle em São Paulo. Iniciei minhas atividades como escritor para comunidade Oracle em 2008, sou certificado nas versões 10g e 11g ( OCP) OCE RAC 10g, OCS Impementation Exadata e eleito Oracle ACE Brazil em Dezembro de 2011. Atualmente sou conselheiro técnico do G.U.O.B Brasil e atuo na área de coordenação de equipes de Infra-Estrutura e também como DBA Oracle Sênior.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Marcações:
plugins premium WordPress