Oracle Sql триггер не работает - PullRequest
0 голосов
/ 05 мая 2018

У меня очень простой триггер, который выводит имя пользователя и дату, когда новая строка вставляется в таблицу пользователей. Но после успешной компиляции триггер не сработал (в окне dbms не было вывода). Итак, я упростил свой код, пока не получил это:

CREATE OR REPLACE TRIGGER logger
AFTER INSERT ON USERS
BEGIN
   DBMS_OUTPUT.PUT_LINE('User added with name:');
END;

Если я запускаю код на листе SQL (от НАЧАЛА до ЗАВЕРШЕНИЯ), я могу видеть вывод, но не при попытке использовать триггер. Где проблема?

1 Ответ

0 голосов
/ 05 мая 2018

Есть два варианта, один из которых заключается в том, что триггер не срабатывает, другой в том, что он есть, но вы не видите выходных данных.

  1. Предполагая, что вы работаете в консольной программе, такой как sqlplus, обязательно выполните SET SERVEROUTPUT ON перед вставкой строки.
  2. Если это не помогает, то убедитесь, что курок срабатывает. Попробуйте создать простую таблицу:

    CREATE TABLE, протоколируемый (MSG VARCHAR2 (30 CHAR));

Затем добавьте это к своему триггеру,

INSERT INTO logtable( msg ) VALUES ( 'trigger fired' );

Затем попробуйте вставить снова.

...