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;