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

我该如何解决?

4

1 回答 1

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;
于 2013-05-14T12:28:33.973 回答