几乎所有的DB2客户端都会返回格式错误
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值可能...”
发布于 2014-03-26 21:35:45
要将'SQLERRMC=TBSPACEID=x,TABLEID=y,COLNO=z‘转换为模式名、表名和列名,请在SQL提示符下执行以下操作:
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找到了这个
发布于 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,您应该会得到错误消息的描述。
发布于 2011-11-06 00:14:09
此外,还可以查看IBM实用程序QW,它可以帮助您方便地获得描述和可能的解决方案。
https://stackoverflow.com/questions/8007814
复制相似问题