我需要编写一个触发器,输出工资被修改的员工的名字和姓氏。当员工的旧工资低于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;