Найти столбец / поле по ошибке
Я работаю на мэйнфрейме, и моя программа DB2 Cobol была прервана с помощью 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
1 ответ
Обычно я ожидаю, что имя вашего столбца по ошибке будет отображаться в вашем SQLCODE
сообщение (и действительно, кажется, что между двумя пробелами COLUMN
а также CANNOT
где я ожидал, что имя столбца будет).
Однако, согласно документам, фактическое имя столбца может также отображаться в SQLCA
, Я бы попробовал вывести значения SQLERRMC
чтобы увидеть, есть ли там ваша колонка.