【发布时间】:2018-12-09 03:12:33
【问题描述】:
在 ORACLE 中执行此触发器出现以下错误:
Table, View Or Sequence reference 'OCEX_COMI.FECHA_ASIG_GT' not allowed in this context.
这是我的触发器:
create or replace trigger ocex_comi_total
before insert or update of id_gt,fecha_asig_gt on ocex_comi
for each row
begin
if ((ocex_comi.fecha_asig_gt > to_date('2018-12-15','yyyy-mm-dd')) and
(ocex_comi.fecha_asig_gt < to_date('2019-01-01','yyyy-mm-dd')))
then
update ocex_comi cm set
cm.PAGO_COM = (select uea.total_bono_especial from OCEX_UEA uea
join OCEX_GUIA_TRANSITO gt on uea.id_uea = gt.dest_id
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.id_uea=gt.dest_id
where gt.cod_gt=cm.id_gt);
else
update ocex_comi cm set
cm.PAGO_COM = (select uea.total_x_pnp from OCEX_UEA uea
join OCEX_GUIA_TRANSITO gt on uea.id_uea = gt.dest_id
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.id_uea=gt.dest_id
where gt.cod_gt=cm.id_gt);
end if;
end;
好吧,我试图做的是,使用此触发器,表“ocex_comi”的列“PAGO_COM”会自动从表“ocex_uea”中填充,这要归功于“total_bono_special”列(如果“date_asig_gt”字段包括)在 15 日至 31 日之间),如果没有,请填写“total_x_pnp”栏(如果“fecha_asig_gt”字段的日期不在 15 日至 31 日之间。) 一些想法或帮助解决我遇到的错误,谢谢。
【问题讨论】: