错误:在psql中使用\ copy时缺少列的数据

时间:2014-11-05 00:33:02

标签: postgresql psql postgresql-copy

我试图将.txt文件导入PostgreSQL。 txt文件有6列:

Laboratory_Name Laboratory_ID   Facility    ZIP_Code     City   State

213行。

我尝试使用\copy使用此命令将此文件的内容放入PostgreSQL中名为doe2的表中:

\copy DOE2 FROM '/users/nathangroom/desktop/DOE_inventory5.txt' (DELIMITER(' '))

它给了我这个错误:

missing data for column "facility"

当我遇到这个错误并没有任何帮助时,我已经四处看看该怎么做了。还有其他人遇到过这个吗?

1 个答案:

答案 0 :(得分:6)

三个可能的原因:

  1. 文件的一行或多行只有4个或更少的空格字符(您的分隔符)。

  2. 一个或多个空格字符已被转义(无意中)。也许在未加引号的值的末尾加上反斜杠。对于您使用的(默认)text格式,the manual explains:

      

    反斜杠字符(\)可以在COPY数据中用于引用数据   否则可能被视为行或列分隔符的字符。

  3. 从具有匹配布局的表中读取时,COPY TOpg_dump的输出不会出现任何这些错误。但是,您的文件可能已经过编辑,或者来自不同的错误来源?

    1. 您没有使用您正在使用的认为的文件。 psql命令行界面的\copy元命令是COPY的包装器,并读取客户端的本地文件。如果您的文件位于服务器上,请改用SQL命令COPY