2017-04-14 46 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版本。