sql >> Base de Datos >  >> RDS >> Oracle

Desencadenador PL/SQL para después de insertar, actualizar, eliminar que ingresa datos en la tabla de registro con una secuencia

Dado que está utilizando el valor de secuencia en la declaración de inserción,

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

no es necesario seleccionarlo como se muestra a continuación.

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

Además, te faltaron dos puntos en esta línea,

      id_pay := :OLD.idpay;

EDITAR:una cosa más, no tiene sentido tener una declaración DBMS_OUTPUT en el disparador. Ya que no lo verás, incluso si la ejecución lo alcanza.