![](/img/trans.png)
[英]ERROR: missing data for column when using COPY FROM PROGRAM in psql
[英]ERROR: missing data for column when using \copy in psql
我正在尝试将 .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"
我四处寻找遇到此错误时该怎么做,但没有任何帮助。 有人遇到过这种情况么?
三种可能的原因:
文件的一行或多行只有 4 个或更少的空格字符(您的分隔符)。
一个或多个空格字符已被转义(无意中)。 也许在未引用值的末尾带有反斜杠。 对于您使用的(默认) text
格式, 手册说明:
可以在
COPY
数据中使用反斜杠字符 (\
) 来引用可能被视为行或列分隔符的数据字符。
从具有匹配布局的表中读取时, COPY TO
或pg_dump
的输出不会出现任何这些错误。 但也许您的文件已被编辑或来自不同的错误来源?
\copy
元命令是COPY
的包装器,用于读取客户端本地的文件。 如果您的文件位于服务器上,请改用 SQL 命令COPY
。仔细检查文件。 就我而言,文件末尾的空行导致ERROR: missing data for column
。 删除它,并且工作正常。
打印空白行可能会发现一些有趣的东西:
cat -e $filename
我有一个类似的错误。 检查用于导出数据的 pg_dump 版本以及您要将其插入的数据库版本。 确保它们相同。 此外,如果复制导出失败,则通过插入导出数据
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.