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使用DB2 10.5是一個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標準允許這樣做),解決方法是存儲空間''''而不是空字符串''''。 – 2015-03-02 23:56:39