У меня проблемы с хранением значений столбцов в переменных сценария оболочки, если они включают пробелы, поскольку все результаты разбиты на пробелы вместо фактических значений столбцов.
Например, вот что я получил сейчас:
set -A SQL_RESULTS_ARRAY `sqlplus -s un/pass@database << EOF
SET ECHO OFF
SET FEED OFF
SET HEAD OFF
SET SPACE 0
SELECT EMAIL_SUBJECT, MAIL_TO FROM EMAIL_TABLE;
EOF`
echo "${SQL_RESULTS_ARRAY[0]}"
echo "${SQL_RESULTS_ARRAY[1]}"
Это не работает, потому что значение EMAIL_SUBJECT представляет собой целое предложение, то есть "Тест предмета сообщения", поэтому эти эхо просто заканчивают тем, что печатают
Message
subject
Вместо
Message subject test
email1@email.com email2@email.com
В принципе, как мне получить только два элемента в массиве (по одному на столбец) вместо пяти (по одному на слово)? Это вообще возможно с одним соединением? (Я бы предпочел не устанавливать новое соединение для каждого столбца)
РЕДАКТИРОВАТЬ: Еще одна вещь, еще один из моих столбцов CLOB - это EMAIL_BODY, который может быть в основном любым текстом - поэтому я бы предпочел не иметь предустановленного разделителя, поскольку EMAIL_BODY может иметь все виды запятых, каналов, новых строк, и т.д ...