Oracle
 sql >> Base de données >  >> RDS >> Oracle

Déclencheur PL/SQL pour après insertion, mise à jour, suppression qui entre des données dans la table de journal avec une séquence

Puisque vous utilisez la valeur de séquence dans l'instruction d'insertion,

   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
           );

il n'est pas nécessaire de le sélectionner comme ci-dessous.

SELECT idtrack_seq.NEXTVAL
 INTO :NEW.idtrack
 FROM DUAL;

De plus, vous avez manqué un deux-points dans cette ligne,

      id_pay := :OLD.idpay;

EDIT :Encore une chose, il est inutile d'avoir l'instruction DBMS_OUTPUT dans le déclencheur. Puisque vous ne le verrez pas, même si l'exécution l'atteint.