如何在shell脚本中运行SQL查询时获得类似SQLPLUS的输出

时间:2013-08-04 08:17:54

标签: linux oracle shell sqlplus

我有以下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 个答案:

答案 0 :(得分:1)

您的变量包含换行符,但您显示它的方式会删除它们。

echo语句替换为:

echo "$RETVAL"

然后shell不会弄乱新行。你应该总是引用可以包含任何形式的需要保留的空格的变量。