create or replace trigger transmit_XS_ZATD_trigger_each
  after delete on XS_ZATD
declare
  zatdbmc varchar(64);
  zatdnum number;
  v_ajbh xs_zatd.ajbh%type;
  cursor zatd(cajbh varchar) is
    select zatdbm from xs_zatd
     where ajbh = cajbh
     order by zatdbm;
begin
  v_ajbh := zatdData.v_ajbh(0);
  if deleting then
    select count(*) into zatdnum from xs_zatd where ajbh = v_ajbh;
    if zatdnum > 0 then
      for zatdbm in zatd(v_ajbh) loop
        zatdbmc := zatdbmc||'/'||zatdbm.zatdbm;
      end loop;
      zatdbmc := zatdbmc||'/';
      update xzlc.xzlc_ajxx set lc_zatd = zatdbmc where lc_ajbh = v_ajbh;
    end if;
    if zatdnum = 0 then
      update xzlc.xzlc_ajxx set lc_zatd = null where lc_ajbh = v_ajbh;
    end if;
  end if;
end transmit_XS_ZATD_trigger;以上是我写的一个触发器。v_ajbh是通过包得到的公共变量。我想在本表删除操作后,先判断本表是否还有记录,如果有,就通过游标取出后按照一定的规则组合数据update另一个用户的表的记录,如果没有了,就update相应的字段为null。但是现在有个问题,如果删除部分数据一切正常,但全部删除后,对方用户的字段总是剩下最后一条数据,不知是为什么?请各位大虾帮忙看看。