【发布时间】:2018-02-20 19:50:04
【问题描述】:
这是完美的工作。 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 出乎意料”
echo \copy (SELECT red_foo FROM table1) TO '%HOME%\net\CSV_OUTPUT.csv' DELIMITER ',' CSV HEADER;
我也尝试删除括号,但它返回一个错误提示
"\copy: "red_foo" 处解析错误"
这个实现的正确方法应该是什么?非常感谢您的建议和想法。
【问题讨论】:
-
将
\copy语句放到单独的SQL脚本中,使用psql ... -f export.sql -
或者只是转义右括号。
echo \copy (SELECT red_foo FROM table1^) TO etc... -
@a_horse_with_no_name 这非常有效。谢谢先生。
标签: postgresql csv batch-file psql postgresql-9.3