【问题标题】:use sql file in "\copy" psql command line在 "\copy" psql 命令行中使用 sql 文件
【发布时间】:2017-02-07 04:06:49
【问题描述】:

我正在尝试从 bash 文件编写查询脚本,但选择查询在文件中。为了兼容性和测试,我想保持这种方式。

简而言之,我想写一些类似的东西:

psql -c data_base "\copy (<file.sql>) To './test.csv' With CSV"

你知道怎么做吗?

编辑

“file.sql”包含一个查询:

$cat file.sql
$SELECT country FROM world;

【问题讨论】:

  • 您的要求不明确。你能用一个示例输入和一个预期的输出来解释它吗?
  • 不是真正的序列。它是包含查询的文件,我正在尝试将其传递给 \copy 命令。

标签: bash postgresql export-to-csv psql


【解决方案1】:

您可以使用bash 替换为,

psql -c data_base "\copy ($(<file.sql)) To './test.csv' With CSV"

$(&lt;file) 扩展了file 的内容

【讨论】:

  • 我添加了括号,因为当您使用带有COPY 的查询时需要这些括号。
  • @LaurenzAlbe:欣赏!干杯!
  • 仍在测试,;-) 更复杂的查询存在问题(包含括号或引号)
  • 这对我很有帮助,非常适合我,谢谢
  • 我对@9​​87654326@ 进行了同样的尝试。我收到-bash: /usr/bin/psql: Argument list too long 编辑:我的命令psql -h DB_HOST DB_NAME DB_USER -c "\copy ($(&lt;/tmp/prod_get_carrier_tier_dbcfg.sql)) To './test1.csv' With CSV"
猜你喜欢
  • 2021-12-17
  • 1970-01-01
  • 2019-03-29
  • 2016-08-06
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多