sh - 将多行的查询结果存储到 csv 中,并从用户那里获取表名
问题描述
我正在尝试将 Greenplum 查询结果存储到 csv 中,但它只存储一行。我想存储多行。有人能帮忙吗。我已经尝试过以下方法,但它只存储一行。
r= `psql -A -t -q -h $hostname -U $username -d $dbname <<-THE_END
COPY(select * From ${gschema}.${gtable} order by ${key} limit 3) TO STDOUT with NULL as ' '
THE_END` > /home/gp.csv
我也在下面尝试了存储结果,但我无法在下面的查询中将表名作为参数传递。对于标准表名,输出是所需的。
psql -h $hostname -U $username -d $dbname -c "COPY (select * from table_name order by key limit 3) TO STDOUT "> /home/gp.csv
任何人都可以帮我解决这个问题。请注意,我正在尝试将上述内容嵌入到 shell 脚本中
解决方案
尝试这个:
psql -A -t -q -h $hostname -U $username -d $dbname -c "select * from $gschema.$gtable order by $key limit 3" > /home/gp.csv
您还可以将 SQL 放在一个文件中:
例子.sql
select * from :gschema.:gtable order by :key limit 3
然后使用 sql 文件:
psql -A -t -q -h $hostname -U $username -d $dbname -f example.sql -v gschema=public -v gtable=customer -v key=id > /home/gp.csv
推荐阅读
- react-native - Flatlist 状态更新中的动态文本输入
- mysql - 这个问题是什么错误,请解释一下
- powershell-6.0 - 导出 Csv 和数组对象
- assembly - 如何在 8086 汇编语言中将 AX 寄存器的内容移动到 CS 寄存器
- tcp - 如何避免来自服务器的 [RST] 数据包?
- c# - 如何在 WPF(mvvm) 中创建倒计时栏动画,动态宽度和值绑定到视图模型?
- c++ - 项目参考上的 QT 访问冲突
- php - !empty($variable) 和 count($variable) 在 PHP 中的布尔结果是否总是相等?
- aws-amplify - 如何更新 AWS Amplify 中的嵌套 cloudformation 堆栈
- xcode - Xcode 在拆分视图中处理两个项目