Oracle
 sql >> Database >  >> RDS >> Oracle

Trigger PL/SQL per dopo l'inserimento, l'aggiornamento, l'eliminazione che inserisce i dati nella tabella di registro con una sequenza

Poiché stai utilizzando il valore della sequenza nell'istruzione 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
           );

non è necessario selezionarlo come di seguito.

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

Inoltre, hai perso i due punti in questa riga,

      id_pay := :OLD.idpay;

EDIT:un'altra cosa, non ha senso avere l'istruzione DBMS_OUTPUT nel trigger. Dal momento che non lo vedrai, anche se l'esecuzione lo raggiunge.