【问题标题】:how to get the output of sql query which is in sql file to shell script file from which we are executing the sql file如何将sql文件中的sql查询的输出获取到我们正在执行sql文件的shell脚本文件
【发布时间】:2021-09-01 04:32:12
【问题描述】:

我有脚本文件 getUserDetails.sh 。从这个脚本文件中,我正在执行一个 sql 文件 getUserDetails.sql 。该 sql 文件有一个 SELECT 语句来获取用户详细信息,如用户 ID、用户名。

现在我想要在我正在执行 sql 文件的 shell 脚本中输出用户 ID 和用户名。

getUserDetails.sh 文件

#!/bin/bash          
echo Start Executing SQL commands
sqlplus <user>/<password> @file-with-sql-query.sql

file-with-sql-query.sql 文件中,我将获得 userid 和 usernme 值。现在我想将这些值存储在 shell 脚本文件中的变量中以供进一步使用。

请帮帮我。

【问题讨论】:

  • 如果您不向我们展示sqlplus... 的输出,我们将无法帮助您编写代码来解析sqlplus... 的输出。请edit您的问题添加并说明/显示您希望将哪些部分保存在变量中。
  • 使用正确的命令行参数,您可以去除标题和无关输出,并将输出行读入列值数组(它们应该被引用)。如果只有一条线,那通常是一个好方法。如果有多个,您可能希望循环阅读这些行。有很多方法,具体取决于您的数据和您的需求,但您没有在这方面给我们太多信息。

标签: sql linux unix awk


【解决方案1】:

我们没有查询的输出,这是一个重要的细节,所以我们可以给你一个准确的答案,所以我们假设有两种选择。

  • sqlplus &lt;user&gt;/&lt;password&gt; @file-with-sql-query.sql 的输出保存到文件中。
sqlplus <user>/<password> @file-with-sql-query.sql > sql_output
cat sql_output
  • 将输出直接保存到 shell 变量中。
xSQLOUT="$(sqlplus <user>/<password> @file-with-sql-query.sql)"
echo $xSQLOUT

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 2018-01-20
    相关资源
    最近更新 更多