嗨,我正在用DB2创建一个数据库。我使用IBM Data Client。我想使用try catch进入我的存储过程,但它似乎不被DB2支持,任何人都可以帮助我吗?我需要处理sql错误并返回它。我怎样才能做到这一点?DB2存储过程try catch
0
A
回答
1
DB2 LUW支持用于SQL PL过程的异常处理程序(继续处理程序或退出处理程序)。查看DB2知识中心获取所有详细信息的版本。您可以在条件下使用它们。如果需要特定的处理,可以有多个处理程序。知识中心和DB2 LUW安装的产品目录中都有大量示例SQL PL过程。
0
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
[email protected],
[email protected]
WHERE [email protected];
END IF;
END P1
相关问题
- 1. 异常使用TRY CATCH存储过程
- 2. SQL在try catch块内重新执行存储过程
- 3. 如何添加一个Try/Catch到SQL存储过程
- 4. 要在DB2存储过程
- 5. 调试DB2存储过程
- 6. DB2 - 在存储过程
- 7. DB2更改存储过程
- 8. db2存储过程格式
- 9. 带存储过程的DB2存储过程
- 10. Try try-catch-finally
- 11. 解释Try try; Catch;
- 12. TRY/CATCH_ALL vs try/catch
- 13. TRY CATCH
- 14. 您可以在存储过程中使用Try Catch来“做”某些内容吗?
- 15. Try Catch does not catch
- 16. 在DB2中重载存储过程
- 17. Db2存储过程结果无
- 18. DB2不允许在存储过程中
- 19. 存储过程中的问题:db2
- 20. DB2存储过程 - 循环访问值?
- 21. db2存储过程异常处理
- 22. db2存储过程创建行为
- 23. 纠正DB2存储过程的错误
- 24. 从zend调用db2存储过程
- 25. db2 alter auto increment查询存储过程
- 26. DB2存储过程中的错误
- 27. DB2存储过程剃刀SQL
- 28. SQL Transaction + Try-catch或VB.NET Transaction + Try-catch?
- 29. 的try/catch整个程序
- 30. Try/Multi-Catch vs Single Catch
是啊,我已经看过了。它说,我必须使用sqlstatuscode这是一个特殊的变量来处理错误,必须分配给巡回返回码变量但它不起作用,这是我的答案的原因。我看过示例代码,但不适合我。我将sqlstatuscode分配给我的retcode变量,即使我有一个errore,retcode始终是0.我故意尝试将违反外键约束的值分配到我的过程中,但retcode值不会更改。 Db2不会插入值,但我不能处理错误 –
发布您的代码并详细说明您的工具链。 DB2在您的SQL PL procs和异常处理程序中运行dml/ddl时(用于继续或错误)在您了解如何使用它们时正确工作时,会设置SQLCODE变量。 – mao
DB2引发(调用)异常并调用您的处理程序,只有DB2本身发现该错误。如果您手动设置SQLCODE,那么DB2不会作出反应(它会在下一次执行DML/DDL时覆盖它的值)。对于异常也存在缺省的退出处理程序。 – mao