如何显示更新工资的员工的姓名?



SQL Developer 显示有关突变的错误。
你能给出如何处理它的任何建议吗?
我在 Oracle 11g 上以 hr 用户身份登录。

create or replace trigger displayEmp
before update ON employees
for each row
declare
v_name varchar;
v_surname employees.last_name%type;
newSal employees.salary%type;
begin
newSal := :new.salary;
select first_name, last_name into v_name, v_surname 
from employees where salary = newSal;
dbms_output.put_line(v_name || ' ' || v_surname);
end;

触发器的目的没有多大意义,因为它只将一些派生信息打印到标准输出中。

但是,您似乎使这过于复杂了。要访问员工姓名,您无需查询该表:该信息在伪记录:new中可用。这大大简化了您的代码:

create or replace trigger displayEmp
before update of salary on employees
for each row
begin
dbms_output.put_line(:new.first_name, || ' ' || :new.last_name);
end;

请注意,我修改了触发器,使其仅在更新salary时触发:before update of salary on employees.

最新更新