У меня есть make-файл, в котором я пытаюсь скопировать вывод программы 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
, но это не сработало, я получаю ту же ошибку.
Мне также удалось импортировать в table1
содержимое физического CSV-файла с помощью очень похожего оператора COPY
. Это работает, но моей целью было бы добиться этого без создания файла.
Любые идеи?