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