在 windows 批处理文件中使用 postgres COPY 时出错

Error in using postgres COPY in windows batch file

一切正常。 table1 中的所有列已成功导出为 .csv 文件。

(
echo \copy table1 TO '%HOME%\net\CSV_OUTPUT.csv' DELIMITER ',' CSV HEADER;
) | "C:\Program Files\PostgreSQL.3\bin\psql.exe" -h %DB_HOST% -p 5432 -U %DB_USER% -d %DB_NAME%

但我只想将选定的列导出到 .csv 文件,但到目前为止我尝试的方法不起作用。

我曾尝试使用 SELECT,但它 returns 出现错误,提示“TO 在此时是意外的

echo \copy (SELECT red_foo FROM table1) TO '%HOME%\net\CSV_OUTPUT.csv' DELIMITER ',' CSV HEADER;

我也曾尝试删除括号,但 returns 出现了一个错误

"\copy: "red_foo""

解析错误

这个实现的正确方法应该是什么?非常感谢您的建议和想法。

根据评论中@a_horse_with_no_name 的建议,我成功导出了一个仅包含选定列的 .csv 文件。

我的 windows 批处理脚本中的 psql 命令使用了一个包含 \copy 语句 的单独 SQL 脚本,它非常有用.