DB2存储过程try catch

fzsnzjdm  于 2023-10-18  发布在  DB2
关注(0)|答案(2)|浏览(160)

你好,我正在用DB2创建数据库。使用IBM Data Client。我想在我的存储过程中使用try catch,但DB2似乎不支持,有人能帮助我吗?我需要处理SQL错误并返回它的。我该怎么做?

j5fpnvbx

j5fpnvbx1#

DB2 LUW支持SQL PL过程的异常处理程序(继续处理程序或退出处理程序)。在DB2知识中心中查找您的版本以了解所有详细信息。您可以将它们与条件一起使用。如果需要特定的处理,可以有多个处理程序。在知识中心和DB2 LUW安装的产品目录中都有大量的示例SQL PL过程。

lnxxn5zx

lnxxn5zx2#

CREATE OR REPLACE PROCEDURE sp_Applicazione_Aggiorna
(               
                IN @VAR1 INT,
                IN @VAR2 INT,
                IN @VAR3 VARCHAR(16),
                OUT @RETURNCODE INTEGER
)

LANGUAGE SQL
P1: BEGIN
DECLARE SQLCODE INTEGER DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION, SQLWARNING, NOT FOUND
SET @RETURNCODE = SQLCODE;


IF not exists (select VAR1 from DB.TABLEA where VAR1 = @VAR1)
THEN
    set @ReturnCode = 3011;
ELSE
    UPDATE          DB.TABLEA SET
                    VAR2=@VAR2,
                    VAR3=@VAR3
    WHERE VAR1=@VAR1;
                    
END IF;
END P1

相关问题