sql多行结果直接声明变量
要将Oracle SQL查询的多行结果直接导出为Shell变量,可以使用sqlplus命令结合使用一些Shell命令。以下是一个示例脚本,演示如何执行Oracle SQL查询并将多行结果直接导出为Shell变量:
bash
#!/bin/bash
# 执行SQL查询并将结果导出为Shell变量
query_result=$(echo "set heading off; set feedback off; set pagesize 0;
SELECT column_name FROM mytable;" | sqlplus -s username/password@mydatabase)
# 将查询结果按行分割为数组
IFS=$'\n' read -r -d '' -a result_array <<< "$query_result"
# 显示每行结果
for row in "${result_array[@]}"
do
echo "$row"
done
在这个示例中,我们使用echo命令生成一个包含SQL查询语句的字符串,并将其通过管道传递给sqlplus命令。-s选项表示以安静模式输出结果,username/password@mydatabase表示连接到指定的Oracle数据库。
然后,我们使用read命令将查询结果按行分割为数组result_array。IFS=$'\n'设置了行分隔符为换行符,-r选项表示禁止对反斜杠进行转义,-d ''选项表示以空字符为行尾分隔符,-a result_array选项表示将读取的行保存到result_array数组中。
最后,我们使用一个循环遍历result_array数组,并显示每行结果。
请注意,这只是一个基本示例,您需要根据您的实际情况进行修改和定制。例如,您可以使用不同的SQL查询,对每行结果进行进一步处理等等。
另外,请确保您已经安装了sqlplus命令,以及必要的Oracle客户端组件。
页:
[1]