我正在尝试编写触发器“restrict_salary”,该触发器禁止向既不是总裁也不是经理的员工发放超过10,000美元的薪水。 如果“更新”不影响列“sal”,则不应触发触发器。之后,正考虑制定触发条件,禁止增加9%以上。我试了一些东西,但我卡住了,这是我的代码。连续触发DML
CREATE OR REPLACE TRIGGER restrict_salary
BEFORE
UPDATE OF sal
ON EMP
REFERENCING emp AS new_emp
FOR EACH ROW
WHEN (sal > 10000)
BEGIN
DECLARE job VARCHAR2(30);
select job into job from ename;
IF job!='MANAGER' OR job != 'PRESIDENT' THEN
raise_application_error (-20002, 'Cannot attribute more than 10000 dollars ');
END IF;
END;
/
你会收到错误信息吗?如果是这样,请编辑您的问题以包含它们。祝你好运。 – shellter
提醒我不要为你的公司工作...他们是吝啬鬼(或不在加利福尼亚州)。 –
如何参考老旧AS(老薪水的价值)? –