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

时间:2020-02-13 20:28:45

标签: sql oracle plsql sql-update database-trigger

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;

1 个答案:

答案 0 :(得分:1)

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

但是,您似乎过于复杂了。要访问员工姓名,您无需查询表:该信息在伪记录: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时才触发。

相关问题