Oracle
 sql >> Datenbank >  >> RDS >> Oracle

PL/SQL-Trigger für nach dem Einfügen, Aktualisieren, Löschen, der Daten mit einer Sequenz in die Protokolltabelle eingibt

Da Sie den Sequenzwert in der Insert-Anweisung verwenden,

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

es ist nicht notwendig, es wie unten auszuwählen.

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

Außerdem haben Sie in dieser Zeile einen Doppelpunkt übersehen,

      id_pay := :OLD.idpay;

BEARBEITEN:Eine weitere Sache, es macht keinen Sinn, die DBMS_OUTPUT-Anweisung im Trigger zu haben. Da Sie es nicht sehen werden, selbst wenn die Hinrichtung es erreicht.