通过shell脚本调用sql过程,如果错误则发送电子邮件

时间:2011-10-10 22:30:11

标签: sql oracle unix oracle11g

我希望编写一个调用sql过程的shell脚本(最终通过调度程序运行脚本),如果该过程提供了任何类型的sql错误,请将错误发送为我希望在脚本中指定的电子邮件。 我该怎么办?

编辑:以下是我的尝试。我无法弄清楚如何在发生错误的情况下放置发送电子邮件的逻辑。

export ORACLE_HOME=/oracle/app/products/11gr1/db
export ORACLE_SID=CTPP01S1 
MAIL_TO="xxx@yyy.com" 
LOGFILE=./xxx_job.log        
exec 2>&1 > $LOGFILE          
echo " Job run at: `date`......" 
$ORACLE_HOME/bin/sqlplus -s '/ as sysdba' <<EOF
set head on; 
set feed on;
set serveroutput on;
set linesize 250;   
set pagesize 1000;
exec schema.proc_name; 
exit
EOF
echo "Job ended at: `date`"
mailx -s "OLBB Extract Results." $MAIL_TO  < $LOGFILE

1 个答案:

答案 0 :(得分:1)

如果您想从Oracle发送邮件,那么utl_mail就是您的朋友。正如@Tony指出你没有指定你的平台,但在Linux中有mailUnix,你可以将执行的输出传递给。{/ p>

在任何环境中,您都可以在包装器中执行SQL,例如Python(我有偏见)和mail