› Fóruns › SQL e PL/SQL › trigger insert em um determinado campo de uma tabela › trigger insert em um determinado campo de uma tabela
@bruno_dba
Utilizo o script abaixo em meus treinamentos de PL/SQL (http://www.fabioprado.net/2010/11/recuperando-dados-da-sessao-de-usuario.html.
-- criando a trigger
create or replace TRIGGER HR.TR_EMPLOYEES_LOG
AFTER INSERT OR DELETE ON HR.EMPLOYEES
REFERENCING OLD AS LA NEW AS LN
FOR EACH ROW
DECLARE
V_OPERACAO VARCHAR2(20);
BEGIN
V_OPERACAO:= CASE WHEN DELETING THEN 'DELETE' ELSE 'INSERT' END;
-- insere historico de cargos anteriores do empregado
INSERT INTO HR.LOG_EMPREGADOS
(ID, DT_INCLUSAO, NM_USER, TP_OPERACAO)
VALUES
(DECODE(V_OPERACAO,'INSERT',:LN.EMPLOYEE_ID,:LA.EMPLOYEE_ID), SYSDATE, USER, V_OPERACAO);
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
/