db2如何捕获存储过程异常
发布网友
发布时间:2023-05-09 14:20
我来回答
共2个回答
热心网友
时间:2024-09-30 11:30
TRUNCATE TABLE output_debug IMMEDIATE@
BEGIN
-- DB2 中,如果需要使用 sqlcode ,那么必须先 DECLARE 以后,才能使用。
DECLARE sqlcode INT;
P1: BEGIN ATOMIC
-- 定义错误处理
-- 如果发生错误,结束处理,并回滚前面做的处理。
DECLARE UNDO HANDLER
FOR
SQLEXCEPTION
BEGIN
-- 异常处理
INSERT INTO output_debug VALUES('出错啦!' || TO_CHAR(sqlcode));
END;
-- 先更新.
UPDATE test_main SET value = 'Test3' WHERE id = 1;
-- 插入一行主键重复数据.
INSERT INTO test_main VALUES(1, 'PK');
INSERT INTO output_debug VALUES('本语句不会执行到!');
END P1;
END
@
db2 => select * from test_main WHERE id = 1@
ID VALUE
----------- ----------
1 Test2
1 条记录已选择。
db2 => select * from output_debug@
DATA
----------------------------------------
出错啦!-803
热心网友
时间:2024-09-30 11:30
用toad调试啊