Почему этот триггер PL / SQL не показывает никакого результата? - PullRequest
0 голосов
/ 01 мая 2020

Мне нужно написать триггер, который выводит имя и фамилию сотрудников, чья зарплата была изменена. Этот триггер сработает, когда старая зарплата сотрудника будет меньше 10 000, а с модификацией она будет больше 10 000. Этот триггер должен быть триггером строки

Я написал это:

CREATE OR REPLACE TRIGGER print_info
AFTER UPDATE OF salary ON employees
FOR EACH ROW
DECLARE fname employees.first_name%type; lname employees.last_name%type;
BEGIN
IF(:OLD.salary < 10000 AND :NEW.salary > 10000) THEN
  dbms_output.put('fname, lname');
END IF;
END;
/

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

Я что-то здесь не так делаю?

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 01 мая 2020

Просто добавьте dbms_output.new_line; после dbms_output.put или используйте dbms_output.put_line

    CREATE OR REPLACE TRIGGER print_info
    AFTER UPDATE OF salary ON employees
    FOR EACH ROW
    DECLARE fname employees.first_name%type; lname employees.last_name%type;
    BEGIN
    IF(:OLD.salary < 10000 AND :NEW.salary > 10000) THEN
      dbms_output.enable; 
      dbms_output.put('fname, lname '||:NEW.first_name||','||:NEW.last_name);
      dbms_output.new_line;
    END IF;
    END;
...