Использование DB2 10.5 на Windows x64Почему DB2 обрабатывает пустую строку как null?
UPDATE dbo.datasource_databases
SET HOST = ''
WHERE ID = 1
Assignment of a NULL value to a NOT NULL column "TBSPACEID=2, TABLEID=6, COLNO=1" is not allowed.. SQLCODE=-407, SQLSTATE=23502, DRIVER=3.67.28
HOST является VARCHAR (512) NOT NULL
Это ожидаемое поведение? Если да, то как мне обойти это, а если нет, что может быть причиной этого?
Редактировать: Вдоль тех же строк SELECT ID, HOST from dbo.datasource_databases WHERE HOST != ''
возвращает 0 строк, где проверка на HOST != 'some gibberish'
будет возвращать строки. Для меня это имеет меньший смысл, чем вышеприведенное поведение (не следует ли рассматривать его как HOST NOT NULL
?).
IIRC (и я не пошел проверять [Руководство по DB2 10.5] (http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.kc. doc/welcome.html)), это «потому что это так» (и, вероятно, это позволяет стандарт SQL), и обходным путем является сохранение пробела '' ''вместо пустой строки' '''. –