2013-06-28 31 views
2

請問這裏有什麼問題?如何強制SQLPLUS輸出新行上的每一行

RETVAL=`sqlplus -s user/[email protected] <<EOF 
SET TRIMSPOOL ON PAGESIZE 0 COLSEP , FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF    
SELECT process_id, source, destination, type FROM table WHERE process_id IN ('123','456'); 
EXIT; 
EOF` 
if [ -z "$RETVAL" ]; then 
    echo "No rows returned from database" 
    exit 0 
else 
    echo $RETVAL 
fi 

輸出是:

123,a c,2 456,a c,5 

,應該是:

123, a, c, 2 
456, a, c, 5 

回答

3

你嘗試

echo "$RETVAL" 

解釋在命令行不帶引號的變量的性質或者在shell腳本中是剝離ou t「外部」格式。 ;-)

IHTH

+0

這裏是現在的輸出: 123, C,2 456, C,5 有逗號缺失和斷裂線... –

+0

我不能從你在這裏發佈的內容中分辨出來。你爲什麼不更新你的問題來包含當前的代碼和輸出。我沒有時間來幫助你調試,所以至少其他人可以評論這兩個版本之間的差異。祝你好運。 – shellter

+0

我能夠用「」修復它,但我仍然可以看到很多空間,而這些空間在數據庫中看不到。 TRIMSPOOL ON選項不起作用。我會在這裏查看更多,也許會提交一個新問題。 Thansk全部! –

相關問題