【问题标题】:Error in using postgres COPY in windows batch file在 Windows 批处理文件中使用 postgres COPY 时出错
【发布时间】: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


【解决方案1】:

使用 cmets 中@a_horse_with_no_name 的建议,我成功导出了一个仅包含选定列的 .csv 文件。

包含 \copy 语句 的单独 SQL 脚本用于我的 windows 批处理脚本的 psql 命令,它的工作原理就像一个魅力。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 2012-12-13
    • 2014-10-29
    相关资源
    最近更新 更多