繁体   English   中英

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

[英]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"

我四处寻找遇到此错误时该怎么做,但没有任何帮助。 有人遇到过这种情况么?

三种可能的原因:

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

  2. 一个或多个空格字符已被转义(无意中)。 也许在未引用值的末尾带有反斜杠。 对于您使用的(默认) text格式, 手册说明:

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

从具有匹配布局的表中读取时, COPY TOpg_dump的输出不会出现任何这些错误。 但也许您的文件已被编辑或来自不同的错误来源?

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

仔细检查文件。 就我而言,文件末尾的空行导致ERROR: missing data for column 删除它,并且工作正常。

打印空白行可能会发现一些有趣的东西:

cat -e $filename

我有一个类似的错误。 检查用于导出数据的 pg_dump 版本以及您要将其插入的数据库版本。 确保它们相同。 此外,如果复制导出失败,则通过插入导出数据

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM