2017-04-14 34 views
0

我想加載一個CSV文件,其中應該爲NULL的值只是空白。例如,考慮以下模式:在MonetDB中使用空白值加載CSV

CREATE TABLE test (
    float a, 
    float b, 
    float c 
); 

我試圖加載看起來像這樣一個文件(某些行可能沒有NULL值,其他人可能有幾個)。

1.0,1.2,1.3 
1.4,,1.5 
1.6,,, 
1.9,2.0,1.2 

我想空字段(例如,在第二行中第二場)是在數據庫NULL。

我使用下面的命令加載csv文件:

COPY INTO table from '/path/to/file.csv' USING DELIMITERS ',','\n','"' NULL AS ''; 

,我收到以下錯誤:

Failed to import table line 2 field b 'double' expected in '' 

我應該是通過別的負載命令(其它比NULL''')?

回答

0

不,你似乎正在做這個正確的。我試圖複製你的測試,它適用於我。你的錯誤似乎只發生在你將NULL作爲答案的一部分。

有您所提供的代碼的幾個小錯誤,正確的代碼是:

CREATE TABLE test (
    a float, 
    b float, 
    c float 
); 

COPY INTO test from '/path/to/file.csv' USING DELIMITERS ',','\n','"' NULL AS ''; 

而在你的文件,你應該刪除多餘的「」性格:

1.0,1.2,1.3 
1.4,,1.5 
1.6,, 
1.9,2.0,1.2 

如果這會失敗,請嘗試更新您的MonetDB版本。