我在一台大型机上工作,在表中插入一行时,我的DB2Cobol程序被SQLCODE-407异常终止。我知道这个错误的补救方法,但是INSERT查询插入了100多个字段。除了显示之外,还有其他方法可以知道NULL值的哪个字段出错吗。以下是我收到的错误消息:
DB2ERRD **ERROR** DB2 CALL UNSUCCESSFUL. SQLCODE = -407. WARNING FLAGS =
DSNT408I SQLCODE = -407, ERROR: AN UPDATE, INSERT, OR SET VALUE IS NULL, BUT THE OBJECT COLUMN CANNOT CONTAIN NULL
VALUES
DSNT418I SQLSTATE = 23502 SQLSTATE RETURN CODE
DSNT415I SQLERRP = DSNXRIHB SQL PROCEDURE DETECTING ERROR
DSNT416I SQLERRD = -136 0 0 -1 0 0 SQL DIAGNOSTIC INFORMATION
DSNT416I SQLERRD = X'FFFFFF78' X'00000000' X'00000000' X'FFFFFFFF' X'00000000' X'00000000' SQL DIAGNOSTIC
INFORMATION
通常,我希望错误列的名称显示在SQLCODE
消息中(事实上,它看起来就像COLUMN
和CANNOT
之间有两个空格,我希望列名在那里)。
但是,根据文档,实际的列名也可能显示在SQLCA
中。我会尝试输出SQLERRMC
的值,看看您的列是否显示在其中。