TRIGGER / JOB para log de Alter, Create etc....

Oracle

04/01/2010

Srs,
não sou DBA por isso não sei a gravidade da minha dúvida.

Precisao fazer uma trigger / job qualquer coisa para identificar qualquer alteração em minha base (Adicionar campos, excluir campos, criar views, procedures, etc).
É possivel?

Grato pela ajuda.
(Estou usando o usuario de um amigo no forum)

Att,
Silvano.
Jorge Junior

Jorge Junior

Curtidas 0

Respostas

Marcio Silveira

Marcio Silveira

04/01/2010

É possível com Triggers, por exemplo abaixo após a alteração do registro:


CREATE or REPLACE TRIGGER trigger_name
AFTER INSERT
    ON table_name
    [ FOR EACH ROW ]
DECLARE
    -- variable declarations
BEGIN
    -- trigger code
EXCEPTION
    WHEN ...
    -- exception handling
END;


CREATE or REPLACE TRIGGER trigger_name
AFTER UPDATE
    ON table_name
    [ FOR EACH ROW ]
DECLARE
    -- variable declarations
BEGIN
    -- trigger code
EXCEPTION
    WHEN ...
    -- exception handling
END;

Para antes da alteração use BEFORE, além de INSERT, UPDATE também é possível usar DELETE.

Outra alternativa é você controlar isso usando procedures, triggers são menos confiávies (mas eu nunca vi falhar, principalmente no Oracle).
GOSTEI 0
Danielle Lemos

Danielle Lemos

04/01/2010

Jorge,

Vc pode criar triggers para todos os eventos abaixo:

BEFORE / AFTER ALTER
BEFORE / AFTER CREATE
BEFORE / AFTER DDL
BEFORE / AFTER DROP
BEFORE / AFTER GRANT
BEFORE / AFTER RENAME
BEFORE / AFTER REVOKE
BEFORE / AFTER TRUNCATE


Lembrando q isso pode causar um pequeno workload na sua base dependendo da frequencia de criação, deleção e alteração de objetos.

[]´s

Dani

GOSTEI 0
POSTAR