我有这个表,它代表一个弱实体,是一个用于介绍订购项目的典型表:插入 ITEM_FORNECIMENTO 值(a_orderId,a_prodId,a_prodQtd,a_buyPrice);
我希望我的触发器更新最后一列(没有 iva 的产品的总价格)以执行此操作:totalPrice= totalPrice*(1+(iva/100),每次我在该表上插入或更新条目时。
所以,我想出了这个,但在处理新旧价值观时我完全错了。
create or replace
trigger t_replaceTotal
after insert or update of id_prod,qtd_if,prec_total_if on item_fornecimento
for each row
declare
iva produto.iva_prod%type;
idProd produto.id_prod%type;
r_old item_fornecimento.prec_total_if%type:=null;
r_new item_fornecimento.prec_total_if%type:=null;
begin
select iva_prod,id_prod into iva,idprod from produto p where p.id_prod = id_prod;
r_old:= :old.prec_total_if;
r_new:= :new.prec_total_if;
update item_fornecimento item set prec_total_if = r_old * (1+(iva/100)) where item.id_prod = idprod;
end;
有人可以帮忙重写这段代码吗?我收到错误:ORA-01422:精确提取返回的行数超过请求的行数 ORA-06512:在“FUSION.T_REPLACETOTAL”,第 8 行 ORA-04088:执行触发器“FUSION.T_REPLACETOTAL”时出错