我写的触发器为什么不能执行,是针对同一张表当其中的某些字段改变时,则更新一个标志位!

yudu 2004-09-07 09:03:45
注:我把update语句封掉,换作i:='0',就可以执行了,为什么???



create or replace trigger trig_yhbz_wzcf
before update on Z_WZCF
for each row
--declare
--i varchar2(1);

begin
--终端编号、处罚机构、
--决定书号、罚款金额、
--滞纳金、扣分、
--处罚类型、处罚结果、
--处罚日期、交易流水、
--已缴标志、撤销标志、
--民警编号、TAC码
if (:new.spsam<>:old.spsam) or (:new.sjgbm<>:old.sjgbm)
or (:new.sjdsbh<>:old.sjdsbh) or (:new.nfkje<>:old.nfkje)
or (:new.nznj<>:old.nznj) or (:new.nwzjf<>:old.nwzjf)
or (:new.sjdszl<>:old.sjdszl) or (:new.scfjg<>:old.scfjg)
or (:new.dcfrq<>:old.dcfrq) or (:new.sjyls<>:old.sjyls)
or (:new.sjkbz<>:old.sjkbz) or (:new.syxbz<>:old.syxbz)
or (:new.scfmj<>:old.scfmj) or (:new.stac<>:old.stac) then

--i:='0';
update z_wzcf set syhbz='0' where nwzcf_sn=:old.nwzcf_sn;

end if;
end;
...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bzszp 2004-09-07
  • 打赏
  • 举报
回复
后面加上分号了吧?
yudu 2004-09-07
  • 打赏
  • 举报
回复
wylwyl1130(落雪山林):
这样写有错误:"出现符号: 在需要下列之一时"
wylwyl1130 2004-09-07
  • 打赏
  • 举报
回复
update z_wzcf set syhbz='0'
改为:
:new.syhbz:= '0'
bzszp 2004-09-07
  • 打赏
  • 举报
回复
不可以 行级触发器,对触发的表进行操作

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧