簡體   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