Banco de Dados - Oracle

Trigger Oracle - entendendo pseudos registros Old e New e os comandos de utilização(parte 2)

Falarei sobre as Triggers, mais para entendermos melhor, temos que saber para que serve uma Trigger e qual a sua função dentro do banco. Então siga passo-a-passo a parte 2 desta coluna.

por Rodrigo Almeida



Entendendo os pseudo registros :Old e :New

6º Passo

Ao trabalharmos com as Triggers de nível de linha, utilizamos estes dois pseudo registros, eles servem para fazer as comparações das colunas velhas ( :old ) com as novas ( :new ), são muito utilizadas para fazer Update nas colunas. O Oracle impõe restrição para o uso do :Old e :New, seguindo está restrição, eles não podem ser utilizados em colunas Long e Long Raw dentro do PL/SQL associada a Trigger.

7º Passo:

Predicados Condicionais

Está parte das Triggers é bem interessante, pois dentro do corpo das Triggers abrigam três predicados importantes para a utilização de múltiplas instruções DML, são os INSERTING ( Inserindo ) , UPDATING ( Atualizando ) e DELETING ( Deletando ), esses predicados possuem valores lógicos e são iniciados no momento de disparo da Trigger.

Vou colocar um exemplo básico de utilização desses predicados nos códigos PL/SQL, assim você terá mais opções de ação quando for criar uma Trigger que execute os três comandos DML dentro da sua tabela.

Finalizando está materia, já preparamos o nosso banco com uma tabela Auditoria onde iremos utilizar ela para efetuar nossos testes com as Triggers , já falamos um pouco sobre os comandos básicos das Triggers, agora na próxima coluna (Triggers - Parte 3) iremos finalmente criar nossas Triggers para Atualização e Retirada de dados, com Stored Procedures e Packages Restritos.

8º Passo: Entendo as Sintaxe das Triggers

Para pode criar um Trigger, você tem que ter as sintaxes geral do comando, que é dada por :

CREATE OR RELACE TRIGGER BASICO(1)
BEFORE UPDATE(2) ON AUDITORIA(3)
FOR EACH ROW
[ BLOCO PL/SQL ]

Onde (1) é o nome da sua Trigger, (2) será o comando DML que será executado no sistema, pode ser UPDATE, INSERT ou DELETE e (3) é o nome da tabela que você que que a trigger seja executada. Entendido vamos para criação.

9º Passo: Criando um Trigger de Atualização

Percebe-se que acima criamos uma Trigger chamada ALTERACAO que irá atualizar a coluna Mensagem para "NOREAL.COM.BR" entre os códigos 2 e 18 do banco, então tudo que estiver entre 2 e 18 terá sua coluna mensagem modificada, de uma unica só vez., sem precisar executar varios comandos Updates.

10º Passo: Criando um Trigger de Exclusão

Agora criamos uma Trigger que irá excluir tudo que tiver a palavra Programador na coluna Mensagem, basta executar este comando que você irá perceber a agilidade que um Trigger lhe pode proprocionar dentro de um banco de dados.

11º Passo: Criando um Trigger e Stored Procedure

Agora desde criarmos Triggers utilizando Blocos de PL/SQL iremos utilizar Procedures.

Viram como é muito fácil você chamar uma Procedure atráves de uma Trigger no Oracle? Assim também podemos usar uma Package desde Procedure no sistema.

A partir dos exemplos acima, você conseguirá criar Triggers de acordo com o seu sistema, deixando seu sistema bem mais agíl e rápido.

Nesta parte da coluna sobre Triggers, falarei sobre os comandos de utilização.

Desabilitando e Habilitando um Trigger Específico:

SQL > ALTER TRIGGER nome_da_trigger DISABLE;
SQL > ALTER TRIGGER nome_da_trigger ENABLE;

Desabilitando e Habilitando todos os Triggers de uma tabela:

SQL > ALTER TABLE nome_tabela DISABLE ALL TRIGGERS;
SQL > ALTER TABLE nome_tabela ENABLE ALL TRIGGERS;

Eliminando Triggers e Procedimentos:

SQL > DROP TRIGGER nome_trigger;
SQL > DROP PROCEDURE nome_procedure;

Inspecionando o dicionário de dados:

SQL > SELECT object_name, object_type FROM user_objects WHERE object_type ="TRIGGER";
"Este comando é executado para ver todas as triggers do Usuario.

Obtendo detalhes das Triggers:

SQL > DESC USER_TRIGGERS
"Este comando lhe dará todas as informações objetivas das triggers, como Tabela associada, 
"corpo, Variável utilizada e etc...

Compilando uma Trigger:

SQL > ALTER TRIGGER nome_da_trigger COMPILE:

Criando uma Sequência Numerica:

SQL > CREATE SEQUENCE nome_da_sequencia; 
"Ótimo recurso para criarmos numeros sequênciais, como códigos, 1,2,3,4,5 ...

Agora já sabemos os principais comandos, conceitos, criação e manutenção, enfim, em brevei vamos tratar de temas mais dinâmicos como interligação de tecnologias, como comunicar-se o Oracle com Delphi, JSP e outros.

Rodrigo Almeida

Rodrigo Almeida