我们需要编写一个BASH脚本来执行SQL查询,然后使用一些结果发送自动电子邮件。我们的SQL版本是Oracle8i企业版版本8.1.7.4.0和SELECT语句以获得我们想要的结果:
SELECT kred_lim.kunr, kust_adr.ku_email, kred_lim.kred_limit, kred_lim.kred_zu_zahlen
FROM kred_lim, kust_adr
WHERE kred_lim.kred_zu_zahlen > kred_lim.kred_limit
AND kred_lim.kunr = kust_adr.ku_nr;
因此,这将显示客户编号,客户电子邮件地址,信用额度和当前未结订单价值,仅限于未结订单价值高于其信用额度的客户。我们只是坚持从哪里开始,或者如何将这些结果纳入电子邮件。
我们只需要向每个人发送一封简单的电子邮件,说明他们超过了信用额度,并在该电子邮件中显示了信用额度和当前未结订单价值。
任何例子或指示都会受到赞赏。
答案 0 :(得分:2)
我会写:
#!/bin/bash
sql="
set pagesize 0
set feedback 0
SELECT kred_lim.kunr ||','|| kust_adr.ku_email ||','|| kred_lim.kred_limit ||','|| kred_lim.kred_zu_zahlen
FROM kred_lim, kust_adr
WHERE kred_lim.kred_zu_zahlen > kred_lim.kred_limit
AND kred_lim.kunr = kust_adr.ku_nr;
"
email_template="Subject: Credit limit
To: %s
Customer number: %s
Credit limit: %s
Current orders: %s
"
sqlplus $user/$pass@$db <<< "$sql" |
while IFS=, read -r num email limit orders; do
printf "$email_template" "$email" "$num" "$limit" "$orders" |
/path/to/sendmail -f sender@example.com -oi -t
done