我有一个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确实为空。 / p>
我尝试将NULL
的{{1}}选项使用,但没有成功,我遇到了同样的错误。
我还使用非常相似的COPY
语句设法将物理CSV文件的内容导入到table1
中。可行,但我的目标是无需创建文件即可实现这一目标。
有什么想法吗?
答案 0 :(得分:0)
解决方案是更改filter.py
,使其不输出有问题的空行。
答案 1 :(得分:0)
谢谢大家的回答,
实际上,我只是在filter.py中做了一个简单的修改,现在就可以了。在使用PSQL导入期间,我太专注于这样做。
干杯:)