首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Db2人类可读的错误格式化程序

Db2人类可读的错误格式化程序
EN

Stack Overflow用户
提问于 2011-11-04 18:23:42
回答 3查看 5.1K关注 0票数 5

几乎所有的DB2客户端都会返回格式错误

代码语言:javascript
复制
Error: DB2 SQL Error: SQLCODE=-407, SQLSTATE=23502, SQLERRMC=TBSPACEID=2, TABLEID=103, COLNO=0, DRIVER=3.57.82
SQLState:  23502
ErrorCode: -407

然后我应该在谷歌上搜索SQLCODE,而不是SQLState,然后尝试理解SQLERRMC的含义。这很耗时..。我想知道有没有工具可以解析这样的格式并返回人类友好的格式错误,例如“您正在尝试在位置2插入null,只有非NULL值可能...”

EN

回答 3

Stack Overflow用户

发布于 2014-03-26 21:35:45

要将'SQLERRMC=TBSPACEID=x,TABLEID=y,COLNO=z‘转换为模式名、表名和列名,请在SQL提示符下执行以下操作:

代码语言:javascript
复制
SELECT C.TABSCHEMA, C.TABNAME, C.COLNAME
FROM SYSCAT.TABLES AS T,
SYSCAT.COLUMNS AS C
WHERE T.TBSPACEID = x
AND T.TABLEID = y
AND C.COLNO = z
AND C.TABSCHEMA = T.TABSCHEMA
AND C.TABNAME = T.TABNAME

字幕:我在http://www.dbforums.com/db2/1655517-how-find-table-tbspaceid-2-tableid-1583-a.html找到了这个

票数 5
EN

Stack Overflow用户

发布于 2011-11-04 23:55:09

here上的DB2版本9消息参考。尽管不同版本的消息非常一致,但您可能希望找到特定版本的消息参考。

在您的例子中,SQL407是here

此外,作为消息引用states,如果要自动转换DB2错误消息,可以执行以下操作:

要调用消息帮助,请打开命令行处理器并输入:

是吗?XXXnnnnn

其中XXX表示有效的消息前缀,nnnnn表示有效的消息编号。

可以通过执行以下命令来检索与给定SQLSTATE值相关联的消息文本:

是吗?nnnnn

或者

是吗?神经网络

其中nnnnn是五位SQLSTATE (字母数字),nn是两位SQLSTATE class >code (SQLSTATE值的前两位)。

在上面的例子中,您可以在CLP提示符下输入?SQL0407,您应该会得到错误消息的描述。

票数 2
EN

Stack Overflow用户

发布于 2011-11-06 00:14:09

此外,还可以查看IBM实用程序QW,它可以帮助您方便地获得描述和可能的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8007814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档