【发布时间】:2011-07-08 08:58:12
【问题描述】:
当列值包含空格时,我无法将列值存储到 shell 脚本变量中,因为所有结果都以空格而不是实际列值分割。
例如,这是我现在得到的:
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 可以有各种逗号、管道、换行符,等等……
【问题讨论】: