将csv文件中存在的NULL值复制到postgres

时间:2013-09-26 17:24:09

标签: postgresql csv

我有以下格式的csv文件(y.csv):

 's', '1999-10-10', '1999-12-12'
 'b', '99-10-10 BC', '1-10-10 BC'
 'c', 'NULL', 'NULL'

我在其中有一些NULL值(日期),我通过字符串'NULL'表示。

我正在尝试将csv文件复制到postgres中。为此,我创建了一个表:

create table r (id character varying(255), timebegin date, timeend date);

现在我尝试使用命令

将上述.csv文件复制到postgres中
copy r from '/home/y.csv' delimiter ',' csv;
ERROR:  invalid input syntax for type date: " 'NULL'"
CONTEXT:  COPY r, line 1, column timebegin: " 'NULL'"

这样做我收到NULL错误。有人可以帮我找出错误并纠正错误。

4 个答案:

答案 0 :(得分:31)

你试过吗?

 copy r from '/home/y.csv' delimiter ',' csv WITH NULL AS 'null';

答案 1 :(得分:3)

提供文件路径后,我们需要在添加其他参数之前使用'With'-

从'/home/y.csv'中复制带有分隔符',NULL AS'null'的csv标头的r;

答案 2 :(得分:2)

错误是因为您将NULL作为字符串插入。删除NULL周围的引号,它应该可以正常工作。

答案 3 :(得分:0)

第一 将所有NULL替换为''(空格)。

然后 从'/home/y.csv'用DELIMITER','NULL复制为''CSV;