我很难理解这个错误:
第3行出现错误:PLS-00103:在预期以下情况之一时遇到了符号“&”:
),*&-+ /在mod余数rem或 作为||多集
代码为:
CREATE OR REPLACE TRIGGER class_trigger
BEFORE INSERT ON Class FOR EACH ROW
BEGIN
IF (type = 'vl' && mass < 15000) THEN
mass := 15000;
END IF;
END;
我的代码有什么问题?我正在使用Oracle的APEX。谢谢。
答案 0 :(得分:6)
您有两个问题:
PL / SQL使用AND
作为布尔AND操作的逻辑运算符,而不是&&
。
在访问传递给触发器的字段时,必须使用:OLD
或:NEW
伪行名称对它们进行限定。
因此,您需要将触发器重写为:
CREATE OR REPLACE TRIGGER class_trigger
BEFORE INSERT ON Class
FOR EACH ROW
BEGIN
IF :NEW.TYPE = 'vl' AND
:NEW.mass < 15000
THEN
:NEW.MASS := 15000;
END IF;
END class_trigger;