您好我正在尝试编写一个触发器,它只根据百分比计算一个值并将其插入到实体的属性中。
我在声明后的第7行继续收到sql语句忽略错误porcentaje := :NEW.do_porcentaje / 100;
在这一行,我试图将:new.do_porcentaje
除以100的值分配给“porcentaje”变量,do_porcentaje是名为“donacion”{do_porcentaje number,do_monto_aportado_ $}的表上的属性, do_monto_aportado_ $是我尝试使用在插入前名为“monto”的变量中计算的值更新的属性。
序列将是,在插入数据之前取do_porcentaje并计算我将乘以得到百分比的值,例如,如果我想要15%的东西do_porcentaje将是“15”,可能有$ in该属性的名称是否导致问题?或者我可能通过使用以下方法操作我未插入的数据:new.do_porcentaje?
create or replace trigger calcular_monto_aportado
before insert or update on donacion
for each row
declare
porcentaje float;
costoinscripciones number;
nroinscripciones number;
monto number;
begin
porcentaje := :NEW.do_porcentaje / 100;
select into costoinscripciones from show where s_costo_inscripcion in (select s_costo_inscripcion from show where s_año = :NEW.do_show);
select count (inscripcion.i_id) into nroinscripciones from inscripcion i join resultado r on (i.i_id = r.r_inscripcion)
join calendario c on (c.c_id=r.r_calendario) join show s on (s.s_año = c.c_show);
monto := porcentaje * (costoinscripciones * nroinscripciones);
-- monto := (:NEW.do_porcentaje/100)*(costoinscripciones)*(nroinscripciones);
update donacion d set d.do_monto_aportado_$ = monto where d.do_show = :NEW.do_show;
end;