我有一个查询(Oracle)的Bash中一样,Oracle查询返回整行中的一行bash的
RETVAL=`sqlplus -S /nolog <<EOF
connect $ORCL_USR/[email protected]$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
当我做猫$的Result.txt结果是:
111
Car
222
Hause
333
Dog
的时候我会想
111 Car
222 Hause
333 Dog
因此文件的每行都在一行中。
如何实现它?
在预先感谢恩里克
表中的列数据类型是什么?看起来输出被封装,因为它太宽。 [可能的副本](https://stackoverflow.com/q/3006431/266304)如果你只是需要'设置linesize' .. –
嗨@AlexPoole我thoung相同Column1 - > nummber,Column2-> Varchar 255,它看起来你在说什么。我会试试看。 – Enrique
好的,然后尝试添加'LINESIZE 300'到你的'SET'命令。你为什么使用'trim()'作为数字 - 所以它在左边而不是在右边?使用'to_char()'会更直观。 –