DB2存储过程尝试catch

时间:2017-08-10 16:03:44

标签: stored-procedures db2

您好我用DB2创建数据库。我使用IBM Data Client。我想在我的存储过程中使用try catch但似乎DB2不支持,任何人都可以帮助我吗?我需要处理sql错误并返回它。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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;

结束P1