-1
create or replace TRIGGER TRIG_INSERT_UPDATE
  BEFORE INSERT OR UPDATE OF L_SPACE,L_RENT
  ON LOCATIONS FOR EACH ROW

DECLARE 
temp_rent NUMBER;

BEGIN
  IF (:new.L_SPACE)< 0 THEN
    RAISE_APPLICATION_ERROR(-20100, 'Please insert a positive SPACE value');
  END IF;
  IF (:new.L_RENT)< 0 THEN
    RAISE_APPLICATION_ERROR(-20100, 'Please insert a positive RENT value');
  END IF;

temp_rent: =fn_calculate_rent(L_SPACE,L_RENTRATE);
UPDATE LOCATIONS
SET RENT=temp_rent;
END; 
4

1 回答 1

0

将参数传递给 fn_calculate_rent 函数时,您应该传递像这样的参数:new.L_SPACE 和 :new.L_RENTRATE 在 IF 构造中比较它们的值时使用它们,因为编译器将未声明的变量作为已声明的变量编码。

于 2014-12-15T14:24:42.003 回答