我在Bash中有一个查询(Oracle)
RETVAL=`sqlplus -S /nolog <<EOF
connect $ORCL_USR/$ORCL_PWD@$ORCL_TNS;
SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF
select trim(Colm1) from $MyTable
EXIT;
EOF`
Result="Result.txt"
touch $Result
echo "$RETVAL" >> "$Result"
cat $Result
如果我只选择一列然后结果是正确的,那么每一列(我只有一列)都有一条线 如此。
cat Result.txt
111
222
333
问题是当我尝试查询2列或更多列时 所以在Revalt我说:
select trim(Colm1),trim(column2) from $MyTable
当我执行Cat $ Result.txt时,结果是:
111
Car
222
Hause
333
Dog
当我希望
111 Car
222 Hause
333 Dog
所以文件的一行中的每一行。
如何实现它?
先谢谢,恩里克
答案 0 :(得分:1)
您可以使用spool命令获取所需的输出。
sqlplus -S /nolog <<EOF
connect $ORCL_USR/$ORCL_PWD@$ORCL_TNS;
spool filepath/Result.txt
SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF
select trim(Colm1),trim(column2) from $MyTable
EXIT;
spool off;
EOF
cat filepath/Result.txt