Найти столбец / поле по ошибке

Я работаю на мэйнфрейме, и моя программа 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 чтобы увидеть, есть ли там ваша колонка.

Другие вопросы по тегам