日期:2014-05-17  浏览次数:20861 次

oracle触发器问题
创建一个触发器:定义一个before行级触发器,为员工表emp更新工资时定义一个完整性规则job为“MANAGER”的工资不得低于2500元,如果低于2500员,自动改为2500元。


create or replace trigger tri_sal_emp
before update on emp
for each row 
when(old.job='MANAGER')
declare
asal emp.sal%type;
begin 
  select emp.sal into asal from emp
  where ename= :old.ename;
  if asal<2500 then 
  asal :=2500;
  end if;
  end;

这个代码写的有问题 
求指教,求教育

------解决方案--------------------
create or replace trigger tri_sal_emp
before update on emp
for each row 
when(old.job='MANAGER' and new.sal<2500)
begin 
:new.sal:=2500;
end tri_sal_emp;


------解决方案--------------------
代码参考:
SQL code

CREATE OR REPLACE TRIGGER tri_sal_emp
BEFORE UPDATE ON emp
FOR EACH ROW  
WHEN ( job = 'MANAGER')
DECLARE
asal emp.sal%TYPE;
BEGIN
    IF :NEW.sal < 2500 THEN  
        :New.sal := 2500;
    END IF
END;