我用存储过程。现想实现一个这样的功能,当执行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';
这句有问题?