如何在 shell 脚本中运行 SQL 查询时获得类似 SQLPLUS 的输出
Posted
技术标签:
【中文标题】如何在 shell 脚本中运行 SQL 查询时获得类似 SQLPLUS 的输出【英文标题】:How to get output like SQLPLUS while Running SQL Query in shell script 【发布时间】:2013-08-04 08:17:53 【问题描述】:我有一个如下的 shell 脚本
RETVAL=`sqlplus -silent user/password <<EOF
SET PAGESIZE 9990
SELECT id, type, count(*) "count" FROM event
EXIT;
EOF`
echo $RETVAL
它的输出像
ID 类型计数 ------------- ---------- ----------- 2 11 2 1 4 1 2 10 29 1 1 35 2 1 6 2 18 1 2 2 3 7 行已选择
但我想要像这样的输出
ID TYPE count
------------- ---------- -----------
2 11 2
1 4 1
2 10 29
1 1 35
2 1 6
2 18 1
2 2 3
已选择 7 行。
我试图弄清楚我是否得到了一些换行符,但找不到。
问候,
【问题讨论】:
【参考方案1】:您的变量包含换行符,但您显示它的方式会删除它们。
将echo
语句替换为:
echo "$RETVAL"
这样,shell 就不会弄乱换行符了。您几乎应该总是引用可以包含需要保留的任何形式的空格的变量。
【讨论】:
以上是关于如何在 shell 脚本中运行 SQL 查询时获得类似 SQLPLUS 的输出的主要内容,如果未能解决你的问题,请参考以下文章
使用 Shell 脚本运行 SQL 查询并返回 CSV 格式的输出