Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wyzwalacz PL/SQL dla po wstawieniu, aktualizacji, usunięciu, który wprowadza dane do tabeli dziennika z sekwencją

Ponieważ używasz wartości sekwencji w instrukcji 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
           );

nie ma potrzeby wybierania go jak poniżej.

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

Ponadto pominąłeś dwukropek w tym wierszu,

      id_pay := :OLD.idpay;

EDYCJA:Jeszcze jedno, nie ma sensu posiadanie instrukcji DBMS_OUTPUT w wyzwalaczu. Ponieważ tego nie zobaczysz, nawet jeśli egzekucja do niego dotrze.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konwersja bazy 36 do bazy 10 tylko przy użyciu SQL

  2. Czy istnieje sposób na dostęp do prywatnych procedur plsql do celów testowych?

  3. Odwołaj się do tabeli w innym schemacie, pomijając nazwę schematu

  4. SQLRecoverableException:Wyjątek we/wy:Resetowanie połączenia

  5. Oracle:Czy klient Oracle 10g współpracuje z serwerem 11g?