这是完美的工作。 table1 中的所有列已成功导出为 .csv 文件。
(
echo \copy table1 TO '%HOME%\net\CSV_OUTPUT.csv' DELIMITER ',' CSV HEADER;
) | "C:\Program Files\PostgreSQL\9.3\bin\psql.exe" -h %DB_HOST% -p 5432 -U %DB_USER% -d %DB_NAME%
但我只想将选定的列导出到 .csv 文件,但到目前为止我尝试的方法不起作用。
我试过使用 SELECT,但它返回一个错误“TO was unexpected at this time”
echo \copy (SELECT red_foo FROM table1) TO '%HOME%\net\CSV_OUTPUT.csv' DELIMITER ',' CSV HEADER;
我也曾尝试删除括号,但它返回一个错误
“\copy:在“red_foo”处解析错误”
这个实现的正确方法应该是什么?非常感谢您的建议和想法。
最佳答案
根据评论中@a_horse_with_no_name 的建议,我成功导出了一个仅包含选定列的 .csv 文件。
在我的 Windows 批处理脚本的 psql 命令上使用了一个包含 \copy 语句 的单独 SQL 脚本,它非常有效。
关于postgresql - 在 Windows 批处理文件中使用 postgres COPY 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46174862/