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 AlmeidaEntendendo 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.
- Exportação de dados do SQL Server para o Oracle com assistente de importação do SQL ServerSQL
- Trigger Oracle (Básico)Oracle
- Análise de desempenho entre os bancos de dados SQL Sever x OracleSQL Server
- Uma libertação chamada OLAPOracle
- A importância da Qualidade dos dados nas empresasSQL Server