我有一个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
对应的某些字段的值为""
?
答案 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")。
但是当我消除了撇号之间的空间时,它起作用了。