运维联盟俱乐部

 找回密码
 立即注册
查看: 247|回复: 0

sql多行结果直接声明变量

[复制链接]
  • TA的每日心情
    开心
    2023-8-9 11:05
  • 发表于 2023-12-15 19:39:41 来自手机 | 显示全部楼层 |阅读模式
    要将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客户端组件。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    运维联盟俱乐部 ( 冀ICP备19036648号 )

    GMT+8, 2024-5-2 07:52 , Processed in 0.047564 second(s), 21 queries , Gzip On.

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表