首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > IBM DB2 >

触发器有关问题

2012-02-25 
触发器问题我建了个触发器,调试的时候发现如果v_wsbjbs1的时候,触发器会报错,不知道为什么,后来我把if v_

触发器问题
我建了个触发器,调试的时候发现如果v_wsbjbs=1的时候,触发器会报错,不知道为什么,后来我把
if v_wsbjbs=1 then
  delete msh_zswsbj where jcfl=n.DQJCFL AND CBJSBS=n.DQJCZT;
  end if;
这一段注掉,就不报错了,可是我想在这个触发器里实现删除msh_zswsbj表数据,同时又插入 HIS_VOYAGEHISTORY表,该如何写呢?

报错:CategoryTimestampMessage
Statusbar2011/8/1 14:10:27DB2 Database Error: ERROR [09000] [IBM][DB2/LINUXX8664] SQL0723N An error occurred in a triggered SQL statement in trigger "DB2INST1.TR_TO_H". Information returned for the error includes SQLCODE "-746", SQLSTATE "57053" and message tokens "DB2INST1.TR_TO_HIS_VOYAG|SQL11080114155737". SQLSTATE=09000 



CREATE TRIGGER TR_TO_HIS_VOYAGEHISTORY_INSERT
  AFTER INSERT
  ON MSH_VOYAGEINFO
  REFERENCING 
  NEW AS n
  FOR EACH ROW
begin

  declare v_djzs varchar(120) default'';
  declare v_cjg varchar(60) default'';
  declare v_cbgs varchar(200) default'';
  declare v_cdgs varchar(200) default'';
  declare v_czxm varchar(100) default'';
  declare v_czgj varchar(6) default'';
  declare v_cbgjqf integer default 0;
  declare v_wsbjbs integer default 0;
  declare v_wfwgbs integer default 0;

  
  set v_djzs=(select djzs from MSH_SHIPBASEINFO a where a.mmsi=n.cbdh);
  set v_cjg=(select cjg from MSH_SHIPBASEINFO a where a.mmsi=n.cbdh);
  set v_cbgs=(select cbgs from MSH_SHIPBASEINFO a where a.mmsi=n.cbdh);
  set v_cdgs=(select cdgs from MSH_SHIPBASEINFO a where a.mmsi=n.cbdh);
  set v_czxm=(select czxm from MSH_SHIPBASEINFO a where a.mmsi=n.cbdh);
  set v_czgj=(select czgj from MSH_SHIPBASEINFO a where a.mmsi=n.cbdh);
  
  set v_cbgjqf=fun_check_shipgjdqdm(n.GJDQDM, n.HC);
  set v_wsbjbs=fun_check_shipzswsbj(n.CBJSBS, n.DQJCFL, n.DQJCZT);
  set v_wfwgbs=fun_check_shipwfwg(n.gjdqdm,n.zwcbm,n.ywcbm);
  
 /* if v_wsbjbs=1 then
  delete msh_zswsbj where jcfl=n.DQJCFL AND CBJSBS=n.DQJCZT;
  end if;*/
   
  insert into HIS_VOYAGEHISTORY(
  HCID,--航次
  MMSI,--船舶档号
  CBJSBS,--船舶检索标识
  JTGJLXDM,--交通工具类型代码
  CBZLDM,--船舶种类代码
  ZWCBM,--船舶中文名称
  YWCBM,--船舶英文名称
  IMO,--IMO号
  GJHH,--国际呼号
  DJZS,--登记证书
  CJG,--船籍港
  CBGS,--船舶公司
  CDGS,--船代公司
  CZXM,--船长姓名
  CZGJ,--船长国籍
  CBGJQF,--船舶国籍
  GJDQDM,--国籍地区代码
  CYBGBS,--船员变更标识
  ZDGZBS,--重点关注标识
  DQJCFL,--当前检查分类
  DQJCZT,--当前检查状态
  KADM,--口岸代码
  CZY,--操作员
  CZBM,--操作部门
  CZSJ,--操作时间
  DQTKMT,--当前停码头
  DQTKBW,--当前停泊位
  JDXGZT,--解档修改状态
  JFR,--加封人
  JFSJ,--加封时间
  QFR,--启封人
  QFSJ,--启封时间
  WQDY,--武器弹药
  JFKADM,--加封口岸
  QFKADM,--启封口岸
  YJBZ,--优检标志
  ZSWSBJBZ,--在线网上报检标志
  BASEID,--总队ID
  WFWGBS,--违法违规标识
  CREATE_DATE,--创建时间
  CREATE_USER_ID,--创建用户ID
  CREATE_IP,--创建IP
  CREATE_PROGRAM_ID,--创建程序ID
  UPDATE_DATE,--更新时间
  UPDATE_USER_ID,--更新用户
  UPDATE_IP,--更新IP
  UPDATE_PROGRAM_ID--更新程序ID
  )
  values (
  n.HC --航次
,n.CBDH --船舶档号(MMSI)
,n.CBJSBS --船舶检索标识
,n.JTGJLXDM --交通工具类型代码
,n.CBZLDM --船舶种类代码
,n.ZWCBM --船舶中文名称
,n.YWCBM --船舶英文名称
,n.IMO --IMO号
,n.GJHH --国际呼号


,v_DJZS --登记证书
,v_CJG --船籍港
,v_CBGS --船舶公司
,v_CDGS --船代公司
,v_CZXM --船长姓名
,v_CZGJ --船长国籍
,v_cbgjqf --船舶国籍区分
,n.GJDQDM --国籍地区代码
,n.CYBGBS --船员变更标识
,n.ZDGZBS --重点关注标识
,n.DQJCFL --当前检查分类
,n.DQJCZT --当前检查状态
,n.KADM --口岸代码
,n.CZY --操作员
,n.CZBM --操作部门
,n.CZSJ --操作时间
,n.DQTKMT --当前停码头
,n.DQTKBW --当前停泊位
,n.JDXGZT --解档修改状态
,n.JFR --加封人
,n.JFSJ --加封时间
,n.QFR --启封人
,n.QFSJ --启封时间
,n.WQDY --武器弹药
,n.JFKADM --加封口岸
,n.QFKADM --启封口岸
,n.YJBZ --优检标志
  ,v_wsbjbs --网上报检标识
  ,null
  ,v_wfwgbs --违法违规标识
  ,sysdate --创建日期
  ,null
  ,null
  ,'tr_to_his_voyagehistory'
  ,null
  ,null
  ,null
  ,null);

end;

[解决办法]
找半天也没找到资料

http://www.ibm.com/developerworks/forums/thread.jspa?threadID=51204

热点排行