2013-09-05 51 views
1

我使用的DB2版本10.我有對我定義爲CREATE TABLE語句如下更新時間戳的表:上插入設置時間戳列設置爲NULL在DB2

Update_Timestamp    For Column D2TIMSTU Timestamp DEFAULT NULL 

初始加載的數據到這個表中,我想將這個列的值設置爲NULL,對於所有的行,但我沒有成功。我試圖指定NULL作爲插入值,我甚至嘗試指定DEFAULT。

兩種嘗試給出了相同的錯誤:

SQL狀態:42703 供應商代碼:-206 消息:[SQL0206]柱或全局變量DEFAULT未找到。原因。 。 。 。 。 。 :在* N中找不到DEFAULT作爲表* N的列,並且在* N中未找到全局變量。

如果該表是* N,DEFAULT不是任何表或視圖的列可被引用

同樣的錯誤爲NULL - 置換爲NULL在錯誤消息中DEFAULT。

我知道我可以解決這個問題,只是沒有指定列名和值,但我真的很想知道爲什麼這不起作用。

+0

什麼INSERT語句是什麼樣子? – BWS

+0

INSERT INTO [Table Name](col1,col2,col3)SELECT Value1,Value2,NULL FROM [Source Table] – Brian

回答

1

首先,您確定目標表中的col3是否允許接受NULL值?

如果是這樣,嘗試這樣的事情(我不能測試 - 我沒有訪問DB2系統了)

INSERT INTO [Table Name](col1, col2, col3)SELECT Value1, Value2, 
    cast(NULL as timestamp) FROM [Source Table] 
+0

我將上面的column3定義爲Update_Timestamp對於列D2TIMSTU Timestamp DEFAULT NULL所以是的,它會接受NULL。將嘗試你的建議,但不知道爲什麼你需要投入,因爲類型應該來自列定義本身 – Brian

+0

我只記得,DB2是如此強烈的類型,所以你可能需要指定NULL是什麼樣的列 – BWS

+0

確定 - 工作 - 並測試,看看這是否發生在一個定義爲時間戳的列上,我試圖將一個可空的整數列設置爲NULL而不投射,並得到相同的錯誤。標記爲答案 - 謝謝。 – Brian