2013-08-31 161 views
0

我使用這個數據讀入到我的Postgres 9.2創建的表:COPY命令問題

COPY tagdata FROM 'C:/Filter112595/QF112595_3.csv' WITH DELIMITER ',' 
    CSV HEADER FORCE_NOT_NULL; 

數據類型是realintegerdate

我得到這個錯誤:

ERROR: invalid input syntax for type real: "NULL" 
CONTEXT: COPY tagdata, line 2, column residual: "NULL" 

使用FORCE_NOT_NULL之前,我對NULL爲「」,但改變了它,因爲不同的數據類型。

有人可以解釋發生了什麼?

+1

「QF112592_3.csv」文件的前兩行是什麼樣的?顯示錶DDL也可能會有幫助。 – bma

+0

好像你在文件中有一個真實類型字段爲NULL。 –

回答

2

你已經告訴PostgreSQL沒有列是空的,所以列中的NULL必須是一個數字。由於NULL不是有效的浮點數,因此會出現錯誤。

您還沒有真正提供幫助您正確使用的信息,但我的猜測是您只需要爲列的子集指定FORCE_NOT_NULL。見語法copy

FORCE_NOT_NULL (column_name [, ...]) | 

在類似這樣的問題,你真的應該提供一對夫婦的CSV行的,所以我們可以看到到底發生了什麼的,當你做出這樣的語句:

Before using FORCE_NOT_NULL, I had NULL as '' but changed it because of the different data types.

你需要解釋那 - 什麼「不同的數據類型」,你爲什麼要改變它,有什麼問題你以爲你解決,鏈接到以前的任何相關SO問題等