只有before insert触发器才能对表进行操作。
你这种情况,可以在包中定义一些变量,在before insert or update or delelte 操作前,将相关数据赋给这个变量,在after操作后再取出来进行管理,也就是说一个触发器变成两个触发器。试试!

解决方案 »

  1.   

    我想适合的办法是建立一个view,然后再在这个view上建立 instead of trigger就能避免变异表错误。
      

  2.   

    http://search.csdn.net/expert/topic/61/6101/2002/10/23/1118930.htm
      

  3.   

    update t_special_class set check_status = 0 where id = p_id and  触发器的基本要求是不能在里面对该表再操作,这个一定是不行的了
      

  4.   

    pegtop() 说得没错,把after修改为before,就可以对触发表访问。
    因为只能触发前才能对:new进行修改,即可以触发表进行操作。另外,以下已循环触发了:
    update t_special_class set check_status = 0 where id = p_id and app_date = v_date;