2013-06-28 2 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" 

природе некотируемыми переменных интерпретируемых в командной строке или в сценариях оболочки, это t "exteraneous" форматирование. ;-)

IHTH

+0

Вот выход в настоящее время: 123, с, 2 456, с, 5 Есть запятые отсутствуют и разорвать линии ... –

+0

I не могу сказать, что вы разместили здесь. Почему бы вам не обновить свой вопрос, чтобы включить текущий код и вывод. У меня не будет времени, чтобы помочь вам отладить это, так что по крайней мере другие могут прокомментировать разницу между двумя версиями. Удачи. – shellter

+0

Я смог исправить это с помощью «», но я все еще вижу много пробелов, которые я не вижу в базе данных. Опция TRIMSPOOL ON не работает. Я еще проверю здесь и, возможно, отправлю новый вопрос. Танский все !!! –