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
.