当前位置: 代码迷 >> DB2 >> DB2存储过程有关问题-求教育啊
  详细解决方案

DB2存储过程有关问题-求教育啊

热度:9023   发布时间:2013-02-26 00:00:00.0
DB2存储过程问题---急求教育啊。
我用存储过程。现想实现一个这样的功能,当执行sql语句出错的时候,把错误信息和表名插入到自己建的日志表里。
功能很简单,但刚学DB2,我不知道这个功能怎么实现,求各位大神指点迷津。。。。
------解决方案--------------------------------------------------------
转:参考一下
DROP PROCEDURE TestProc()@

--创建该存储过程
CREATE PROCEDURE TestProc()
LANGUAGE SQL
BEGIN

  --变量定义  
  DECLARE sqlcode INTEGER DEFAULT 0;
  DECLARE sqlstate CHAR(5);
  DECLARE v_Message CHAR(100);
  
  --SQL异常处理,插入到错误日志表中
  DECLARE exit handler FOR sqlexception
  BEGIN

    --开始异常处理
    VALUES ('存储过程 TestProc 调用失败,SQLCode:' 
------解决方案--------------------------------------------------------
 CHAR(sqlcode) 
------解决方案--------------------------------------------------------
 'SQLState:' 
------解决方案--------------------------------------------------------
 CHAR(sqlstate))
      INTO v_Message;

    INSERT INTO TestLog(T_Message)
      VALUES (v_Message);

    --显式提交事务
    COMMIT;

    --设置存储过程返回值
    SIGNAL SQLSTATE '99999'
    SET MESSAGE_TEXT = 'TestProc throw error';
  END;

  --开始实现业务逻辑
  UPDATE TestTable
    SET T_Year = INTEGER(SUBSTR(T_HalfYear,1,4));

END@
------解决方案--------------------------------------------------------
提示什么,

UPDATE ST_T_TIME SET ST_T_TIME.UPDATETIME=T_MAXCSJS WHERE ST_T_TIME.TABLENAME='ST_A_ORG_STO';
这句有问题?
  相关解决方案