Pular para o conteúdo

Fóruns SQL e PL/SQL trigger insert em um determinado campo de uma tabela trigger insert em um determinado campo de uma tabela

#105615
Fábio Prado
Participante

    @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;
    /