为什么这个PL / SQL触发器不显示任何结果?



我需要编写一个触发器,输出工资被修改的员工的名字和姓氏。当员工的旧工资低于10000,并且经过修改,超过10000时,此触发器将起作用。此触发器必须是行触发器

我写了这个:

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

这段代码编译成功并创建了触发器,但当我在触发器要求范围内更新员工的工资时,触发器不会执行或不向我显示任何内容。

我是不是做错了什么?

谢谢你的帮助。

只需在dbms_output.put之后添加dbms_output.new_line;或使用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;

最新更新