BASH 中的 SQL 查询

Posted

技术标签:

【中文标题】BASH 中的 SQL 查询【英文标题】:SQL query within BASH 【发布时间】:2013-08-09 13:50:06 【问题描述】:

我有一个像下面这样的 BASH 脚本:

#!/bin/bash

email_template="Subject: Subject
From: example@example.com
To: %s

%s
%s
%s
"

cat test.out | while read num email limit orders; do
    echo "Sending mail to '$email'"
    printf "$email_template" "$email" "$num" "$limit" "$orders" |
    sendmail -oi -t
done

还有一个 .sql 文件,其中包含一个 SQL 查询,该文件对 test.out 执行 SPOOL 并获得结果。我怎样才能使这一切都在上面的 BASH 脚本中完成(BASH 脚本中的 SQL,没有 cat 等)?

【问题讨论】:

尝试以下操作:sqlplus / @file-with-sql-1.sql 来源:***.com/questions/1467846/… 【参考方案1】:

没有看到 .sql 文件就更难说了,但这里有一些可能性:

添加 .sql 内联并将其存储在 bash 变量中:

mysqlquery="select * from foo;
selct * from baz;
select * from bar;"

echo "$mysqlquery"|mysql

如果您将 .sql 文件分开,那么您可以执行以下操作:

mysql < /path/sqlFile.sql

【讨论】:

以上是关于BASH 中的 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章

在 bash 脚本中循环 sql 查询

bash - SQL查询输出到变量

如何从sqlplus到bash脚本获取SQL查询输出

转换bash中的sql where子句

sql 中的查询语句

SQL中的子查询