日期:2014-05-17  浏览次数:21031 次

请高手达人来帮我看一下,我这个触发器有什么问题,第一次写不懂啊.
create   or   replace   trigger   Aft_Update_DZDM
    after   update   of   DZDM   on   tdw_xxh_dzjg    
    for   each   row
declare
    cursor   DZJG_Cursor   is   select   ID,   DZDM   from   TDW_XXH_DZJG;
    ANewLen   Integer;
    AOldLen   Integer;
    ADZJG   DZJG_Cursor%ROWTYPE;
begin
          ANewLen   :=   Length(:new.DZDM)+1;
          AOldLen   :=   Length(:old.DZDM);
          open   DZJG_Cursor;
          loop
                  FETCH   DZJG_Cursor   INTO   ADZJG;
                  EXIT   WHEN   DZJG_Cursor%NOTFOUND;                
                  if   substr(ADZJG.DZDM,   1,   AOldLen)   =   :old.DZDM   then
                          UPDATE   TDW_XXH_DZJG   SET   DZDM=:new.DZDM||substr(ADZJG.DZDM,   ANewLen)   WHERE   ID   =   ADZJG.ID;  
                  end   if;
          end   loop;
          close   DZJG_Cursor;    
end   Aft_Update_DZDM;

------解决方案--------------------
触发器中对本表除了当前行数据,可以使用:NEW. / :OLD. 进行操作,其他的数据是不能进行操作的