DB2异常处理

时间:2009-07-09 06:18:21

标签: exception exception-handling db2

我面临的问题主要是异常处理!发生异常时,我想将该数据放在另一个包含错误消息的日志表中。但是,在DB2中,我无法找到一种方法来为引发的SQLSTATE检索相应的错误消息。

PS:我有一个用于此迁移的存储过程,我没有使用任何其他语言来调用它。

尽管如此,我已经对此进行了质疑,事实上我得到了一些有价值的指示。

参考:DB2 Exception handling

但是,如果我使用基本的SQLERRM函数,那么对于基本的23502,我会收到以下消息:

“SQLSTATE 23502:插入或更新值为null,但该列不能包含空值。”

而我真正想要的是引发此错误的列名称,附加到此消息!有没有办法,DB2可以给我一个完整的错误,列名称引发了错误?

提前致谢; - )......

Harveer

1 个答案:

答案 0 :(得分:1)

当您遇到此类错误时,您需要从SQLCA检索所有令牌。标记将包含表名和列名,或表中的数字表id和列位置,从零开始。 SQLERRM函数接收这些令牌并使用它们来重建错误消息,该错误消息与您从命令行中看到的一样详细。