在MonetDB中使用空白值加载CSV
问题描述:
我想加载一个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''')?
答
不,你似乎正在做这个正确的。我试图复制你的测试,它适用于我。你的错误似乎只发生在你将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版本。