DB2:如何忽略异常?

fcwjkofz  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(231)

我需要添加一个合并到我的批处理中,但如果出现错误,它将被忽略,批处理将继续进行。我知道如果我这样做:

BEGIN
 DECLARE CONTINUE HANDLER FOR SQLSTATE '42704'
BEGIN END;
 EXECUTE IMMEDIATE 'DROP TABLE test.test1';
END

它会工作,但现在我需要一个更大的命令,而不是那个单一的班轮,而且我从来没有理解过立即执行。
在Oracle中,我想我可以

begin
 my code
exception
 when others then
 null;
end;

并忽略任何类型异常,那么db2中是否有类似的地方呢?

qnyhuwrf

qnyhuwrf1#

BEGIN END块中声明的处理程序(如下所示)会吞下同一块中的所有异常:

BEGIN
 DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
 EXECUTE IMMEDIATE 'DROP TABLE test.test1';
 EXECUTE IMMEDIATE 'CREATE TABLE MYTAB (I INT)';
 EXECUTE IMMEDIATE 'DROP TABLE test.test1';
 EXECUTE IMMEDIATE 'INSERT INTO MYTAB (I) VALUES 1, 2, 3';
END

dbfiddle链接。

相关问题