触发器又有有关问题

触发器又有问题
create trigger tr_del_jgxx
after delete on sys_jgxx
referencing old as o
for each row
MODE DB2SQL 
begin
  declare v_unit_id varchar(256) default'';
  declare v_sql varchar(2000) default'';
  --错误代码相关定义
  declare V_SQL_CODE INT DEFAULT 0;  
  declare V_SQL_MSG VARCHAR(500) DEFAULT '';  
  declare V_JOB_ROWS INT DEFAULT 0; 
  declare V_SQL_STATE CHAR(5) DEFAULT '00000'; 
  declare SQLSTATE CHAR(5) DEFAULT '00000'; -- db2错误信息 
  declare SQLCODE INT DEFAULT 0; -- db2错误代码 
  

  --错误处理
  DECLARE EXIT HANDLER FOR SQLEXCEPTION 
H1:BEGIN 
  GET DIAGNOSTICS EXCEPTION 1 V_SQL_MSG = MESSAGE_TEXT; -- 捕获错误描述 
  SELECT SQLSTATE,SQLCODE INTO V_SQL_STATE,V_SQL_CODE FROM SYSIBM.SYSDUMMY1; -- 捕获错误信息及其代码  
END H1; 
  insert into test values(o.jlid,'记录id');
   
  set v_sql='insert into TEST2 ';
  set v_sql=v_sql||'with rpl(jlid,sjjlid,unit_id,jgxxgqc,jgjb) as';
  set v_sql=v_sql||'(';
  set v_sql=v_sql||'select jlid,sjjlid,unit_id,jgxxqc,jgjb from sys_jgxx where jgjb='||o.jgjb||' and jlid='||''''||o.jlid||'''';
  set v_sql=v_sql||'union all ';
  set v_sql=v_sql||'select child.JLID,child.SJJLID,child.UNIT_ID,child.JGXXQC,child.JGJB from sys_jgxx child,rpl parent where child.SJJLID=parent.jlid and parent.jgjb='||o.jgjb;
  set v_sql=v_sql||')';
  set v_sql=v_sql||'select unit_id from rpl';

  insert into test values(11,v_sql);
  execute immediate v_sql;
  insert into test values(11,'OK');
  insert into test values(o.jlid,'记录id2');
end;

大家好,我把直接执行test表里记录的sql,完全没有问题,往test2表里插了3条数据,
但是在这个触发器执行完后,却没有往test2表里插数据,是为什么呢?

------解决方案--------------------
如果用这么复杂的游标到时候难免会出问题,如果可以的话把游标的处理逻辑放到跟insert into test values(11,v_sql)同一事物里就可以了,这样反而更容易维护
------解决方案--------------------
把那几个o.什么的也插到test里边看看,估计没捕获正确