繁体   English   中英

如何使用“psql”解决“错误:列缺少数据”?

[英]How do I solve "ERROR: missing data for column" with "psql"?

我有一个 makefile,我试图在其中将 Python 程序的输出复制到我的 PostgreSQL 服务器上托管的表中。

我的查询看起来像这样:

Python3 filter.py | psql -X -U $(DBUSER) -d $(DBNAME) -h $(DBHOST) -p $(DBPORT) -1 -e \
   -c "COPY table1(col1, col2) FROM STDIN with (format csv, header true, delimiter '|')"

但是,当我执行它时,我收到以下错误消息:

ERROR:  missing data for column "col1"
CONTEXT:  COPY table1, line 168061: ""

为了尝试理解这个问题,我将 Python 程序的输出导出到一个 CSV 文件,我意识到这个问题来自于第 168060 行之后没有更多条目的事实。所以第 168061 行确实是空的。

我曾尝试将NULL选项用于COPY但它没有用,我得到了同样的错误。

我还设法使用非常相似的COPY语句将物理 CSV 文件的内容导入table1 这行得通,但我的目标是在无需创建文件的情况下实现这一目标。

有任何想法吗?

解决方案是更改filter.py以使其不输出有问题的空行。

谢谢大家的答案,

事实上,我只是在 filter.py 中做了一个简单的修改,现在它可以工作了。 在使用 PSQL 导入期间,我太专注于做这件事了。

干杯:)

暂无
暂无

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

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