【发布时间】:2017-08-10 16:03:44
【问题描述】:
您好,我正在使用 DB2 创建一个数据库。我使用 IBM 数据客户端。我想在我的存储过程中使用 try catch,但似乎 DB2 不支持,有人可以帮助我吗?我需要处理 sql 错误并返回它。我该怎么做?
【问题讨论】:
标签: stored-procedures db2
您好,我正在使用 DB2 创建一个数据库。我使用 IBM 数据客户端。我想在我的存储过程中使用 try catch,但似乎 DB2 不支持,有人可以帮助我吗?我需要处理 sql 错误并返回它。我该怎么做?
【问题讨论】:
标签: stored-procedures db2
DB2 LUW 支持 SQL PL 过程的异常处理程序(继续处理程序或退出处理程序)。在 DB2 知识中心中查找您的版本以获取所有详细信息。您可以将它们与条件一起使用。如果您需要特定的处理,您可以拥有多个处理程序。知识中心和 DB2 LUW 安装的产品目录中都有大量示例 SQL PL 过程。
【讨论】:
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
【讨论】: