CREATE OR REPLACE TRIGGER precio_reparaciones
BEFORE INSERT OR UPDATE ON Reparaciones
FOR EACH ROW
BEGIN
UPDATE Reparaciones
SET precio = :NEW.gasto_material * :NEW.tiempo_usado * :NEW.factor
WHERE :NEW.garantia = 0;
END;
SQL Developer在第一个:NEW
显示语法错误。 (我正在使用Oracle Database Express Edition 11g。)
我该如何解决?
答案 0 :(得分:1)
作为@Kern Golstein评论的回复 -
您可以按以下方式更改触发器 -
CREATE OR REPLACE TRIGGER precio_reparaciones
BEFORE INSERT OR UPDATE ON Reparaciones
FOR EACH ROW
BEGIN
if :new.garantia = 0 then
:new.precio := :NEW.gasto_material * :NEW.tiempo_usado * :NEW.factor;
end if;
END;