Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Gatilho PL/SQL para após inserir, atualizar, excluir que insere dados na tabela de log com uma sequência


Como você está usando o valor de sequência na instrução insert,
   INSERT INTO dd_paytrack
           (idtrack, pt_user, pt_date,
            pt_action, pt_payid
           )
    VALUES (idtrack_seq.NEXTVAL, USER, TO_CHAR (SYSDATE, 'DD-MON-YY'),
            log_action, id_pay
           );

não há necessidade de selecioná-lo como abaixo.
SELECT idtrack_seq.NEXTVAL
 INTO :NEW.idtrack
 FROM DUAL;

Além disso, você perdeu dois pontos nesta linha,
      id_pay := :OLD.idpay;

EDIT:Mais uma coisa, não adianta ter a instrução DBMS_OUTPUT no gatilho. Já que você não o verá, mesmo que a execução o alcance.