Oracle 触发器不工作:错误(12,10):PLS-00103:遇到符号“1”:&引用;应为以下情况之一时::=。( @ % ; 创建或替换触发器触发器插入更新 在插入或更新L_空间之前,L_RENT 关于每行的位置 声明 临时租金号码; 开始 如果(:new.L_空格)
当将参数传递给fn_calculate_rent函数时,您应该像这样传递参数:new.L_SPACE和:new.L_RENTRATE,因为编译器将其作为声明变量,而这些变量没有在代码中声明。TryOracle 触发器不工作:错误(12,10):PLS-00103:遇到符号“1”:&引用;应为以下情况之一时::=。( @ % ; 创建或替换触发器触发器插入更新 在插入或更新L_空间之前,L_RENT 关于每行的位置 声明 临时租金号码; 开始 如果(:new.L_空格),oracle,plsql,database-trigger,Oracle,Plsql,Database Trigger,当将参数传递给fn_calculate_rent函数时,您应该像这样传递参数:new.L_SPACE和:new.L_RENTRATE,因为编译器将其作为声明变量,而这些变量没有在代码中声明。Trytemp_rent:=fn_calculateinsteatemp\u rent的d:=(在:和=之间没有空格)错误(12,1):PL/SQL:语句忽略错误(12,31):PLS-00201:必须声明标识符“L_空格”该错误消息有什么不清楚的地方?L_空格是位置表中的一列。为什么我需要声明它。此触发器即
temp_rent:=fn_calculate
insteatemp\u rent的d:=
(在:
和=
之间没有空格)错误(12,1):PL/SQL:语句忽略错误(12,31):PLS-00201:必须声明标识符“L_空格”该错误消息有什么不清楚的地方?L_空格是位置表中的一列。为什么我需要声明它。此触发器即使编译也无法工作。更新
每次触发时都会导致变异表错误。
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;