带有NEW值的SQL中的语法错误

时间:2013-05-14 11:51:30

标签: sql triggers

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。)

我该如何解决?

1 个答案:

答案 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;