检索新值时触发器在 PLSQL 中不起作用
Posted
技术标签:
【中文标题】检索新值时触发器在 PLSQL 中不起作用【英文标题】:Trigger not working in PLSQL while retrieving new value 【发布时间】:2021-05-27 11:31:05 【问题描述】:我正在尝试创建一个触发器,将工资超过 1000 美元的员工的工资乘以 2,但它在下面显示了这个错误,这是代码。我仍在发现这个“新/旧”概念。但我不明白为什么我的触发器不起作用。有人知道为什么吗?
CREATE OR REPLACE TRIGGER MAJ
AFTER UPDATE on EMPLOYEES
FOR EACH ROW
begin
IF (:new.salary <1000) THEN
:new.salary:= :new.salary*2;
end;
/
【问题讨论】:
你没有END IF;
【参考方案1】:
您在代码中忘记了END IF
-
CREATE OR REPLACE TRIGGER MAJ
AFTER UPDATE on EMPLOYEES
FOR EACH ROW
BEGIN
IF (:new.salary <1000) THEN
:new.salary := :new.salary*2;
END IF;
END;
/
【讨论】:
谢谢,如果可以的话,我还有一个问题。由于我每 90 分钟只能发布 1 个问题,因此我现在基本上正在研究另一个功能。你知道为什么它不起作用吗?这是代码: CREATE OR REPLACE FUNCTION FN_DOUBLE (a number) RETURN number IS BEGIN a:=a*2;返回一个;结尾; / 您只需将参数列表从(a number)
替换为(a in out number)
。以上是关于检索新值时触发器在 PLSQL 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章