26

我有以下格式的 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

4 回答 4

50

你试过了吗?

 copy r from '/home/y.csv' delimiter ',' csv WITH NULL AS 'null';
于 2013-09-26T17:45:44.267 回答
5

在给出文件的路径后,我们需要在添加其他参数之前使用“With” -

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

于 2020-04-14T00:02:31.320 回答
2

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

于 2013-09-26T17:50:23.090 回答
0

第一次 用''(空格)替换所有NULL。

然后 COPY r FROM '/home/y.csv' WITH DELIMITER ',' NULL as ' ' CSV;

于 2020-07-17T12:50:49.680 回答