首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgres Psql文件

Postgres Psql文件
EN

Stack Overflow用户
提问于 2020-06-23 19:13:07
回答 1查看 213关注 0票数 0

我有一个bash脚本,它调用PSQL执行查询,然后使用WHILE循环将输出输出打印到一个文件中。类似于:

代码语言:javascript
复制
psql -U zrec -d zrec -t -c "SELECT .........;" \    | while read -a Record; do
  printf "${Record[0]},${Record[1]}\n"  >> /tmp/file.csv
done

该查询已发展为一个非常大的查询。另外,我现在需要向查询传递一个日期变量。因此,我正在考虑接受这个硬编码的查询,并将其放入一个.sql文件中,调用它,传递日期变量,并将输出打印到一个文件中。

甲骨文使这很容易与线轴和&etc;1,等等。

有什么办法我可以:

  1. 调用bash脚本
  2. 有脚本调用my_query.sql,并将日期参数
  3. 传递给它,将查询输出放入

文件中。

看起来应该很简单,但事实证明并非如此。

EN

回答 1

Stack Overflow用户

发布于 2020-06-23 20:48:01

如果您想要生成一个csv文件,不要使用假脱机或类似的东西,请使用\copy。不需要循环。

类似于:

代码语言:javascript
复制
\copy (SELECT ....) to '/tmp/file.csv' with (format csv, header true)

通常,将任何长度超过几个单词的内容放入单独的SQL脚本比使用-c "..."传递它更容易,这也会引发许多嵌套的引用问题。

因此,如果您将上述内容放入一个文件(例如export.sql )中,您所需要的就是:

代码语言:javascript
复制
psql -U zrec -d zrec -f export.sql`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62542142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档