在“\copy”psql 命令行中使用 sql 文件

Meh*_*out 3 postgresql bash export-to-csv psql

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

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

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

你知道该怎么做吗?

编辑

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

$cat file.sql
$SELECT country FROM world;
Run Code Online (Sandbox Code Playgroud)

Ini*_*ian 6

您可以使用bash替换作为,

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

$(<file)扩展了内容file

  • 仍在测试,;-) 更复杂的查询存在问题(包含括号或引号) (2认同)
  • 我尝试了与“$(&lt;file)”相同的操作。我收到 `-bash: /usr/bin/psql: 参数列表太长` 编辑:我的命令 `psql -h DB_HOST DB_NAME DB_USER -c "\copy ($(&lt;/tmp/prod_get_carrier_tier_dbcfg.sql)) To '. /test1.csv' 带有 CSV"` (2认同)