在Postgres中使用copy命令时出错(错误:类型为date的无效输入语法:“”)

时间:2011-05-18 13:22:31

标签: postgresql

我有一个CSV文件,我试图使用Postgres COPY命令来填充该CSV文件中的表格。其中一个表列NEXT_VISIT具有日期data_type。 CSV文件中应该进入此日期列的一些相应字段具有空值。

我正在运行的复制命令是这样的:

COPY "VISIT_STAGING_TABLE" from E'C:\\Users\\Sir Codealot\\Desktop\\rufijihdss-2007-2010\\rufijihdss\\VISIT_TEST.CSV' CSV HEADER 

当我运行此命令时,我收到错误:

ERROR:  invalid input syntax for type date: ""
CONTEXT:  COPY VISIT_STAGING_TABLE, line 2, column NEXT_VISIT: ""

********** Error **********
ERROR: invalid input syntax for type date: ""
SQL state: 22007
Context: COPY VISIT_STAGING_TABLE, line 2, column NEXT_VISIT: ""

如何运行复制命令并让Postgres接受CSV文件中与NEXT_VISIT对应的某些字段的值为""

2 个答案:

答案 0 :(得分:11)

WITH NULL AS ''添加到您的命令中( COPY期望NULL默认表示为“\ N”(反斜杠-N))。

COPY "VISIT_STAGING_TABLE" from E'C:\\Users\\Sir Codealot\\Desktop\\rufijihdss-2007-2010\\rufijihdss\\VISIT_TEST.CSV' WITH CSV HEADER NULL AS ''

此处有更多详情:postgresql COPY

答案 1 :(得分:4)

我遇到了完全相同的问题,为我解决的问题是使用语句WITH NULL ''。重要的是不要在撇号之间留出空格

我最初使用语句WITH NULL ' '并得到了相同的错误消息(错误:语法错误在或附近" WITH NULL")。

但是当我消除了撇号之间的空间时,它起作用了。