使用Oracle PL / SQL中的触发器来改变触发器错误

时间:2018-06-26 02:45:17

标签: oracle plsql

我正在学习Oracle,并且在执行自己创建的触发器时遇到问题。我想做的是,此触发器会自动更新OCEX_COMI表的Pago_Com列。

create or replace trigger ocex_comi_total
after insert or update of id_gt on ocex_comi
for each row
begin
update ocex_comi cm set
cm.PAGO_COM = (select uea.total_x_pnp from OCEX_UEA uea                   
                join OCEX_GUIA_TRANSITO gt on uea.N_MINA = gt.dest_entreg
                where gt.cod_gt=cm.id_gt)
where cm.id_gt = (select gt.cod_gt from ocex_guia_transito gt 
                  JOIN ocex_uea uea on uea.N_MINA=gt.DEST_ENTREG 
                  where gt.cod_gt=cm.id_gt);    
end;

我的表通过以下方式关联: 我从OCEX_UEA表的“ n_mina”字段中获得的“ total_x_pnp”,而“ n_mina”又与“ OCEX_GUIA_TRANSITO”表的“ gt.dest_entreg”列相关,但是我的“ where”子句存在问题并且通过将“ OCEX_GUIA_TRANSITO”标签的“ cod_gt”列与“ OCEX_COMI”表的“ ID_GT”列进行匹配,因为它不选择任何行,并且不进行比较并生成“变异触发问题”错误。一些帮助,以便您可以执行插入并验证字段“ OCEX_COM.ID_GT”,以便可以执行触发器。还是应该通过存储过程更改它?

谢谢。

0 个答案:

没有答案