html格式邮件监控failures大于0的job

create or replace procedure sp_job_check as
v_counter number;
v_html varchar2(30000);
begin
select max(failures) into v_counter from dba_jobs;
if v_counter>0 then
      v_html:='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"  xmlns="http://www.w3.org/1999/xhtml">';
      v_html:=v_html||'<head><meta http-equiv=Content-Type content=text/html;charset=gb2312></head>';
      v_html:=v_html||'<body>';
      v_html:=v_html||'<table style="border-collapse:collapse">';
      v_html:=v_html||'<tr>';
      v_html:=v_html||'<td style="border:1px solid black" >job</td><td style="border:1px solid black"  >SCHEMA_USER</td><td style="border:1px solid black" >LAST_DATE</td><td style="border:1px solid black" >FAILURES</td><td style="border:1px solid black" >BROKEN</td><td style="border:1px solid black" >INTERVAL</td><td style="border:1px solid black"  >WHAT</td>';
      v_html:=v_html||'</tr>';
      for mm in ( select job,SCHEMA_USER,to_char(LAST_DATE,'yyyy-mm-dd hh24:mi:ss') last_time,WHAT,INTERVAL,FAILURES,BROKEN from dba_jobs where failures>0)  loop
        v_html:=v_html||'<tr>';
        v_html:=v_html||'<td style="border:1px solid black" >'||mm.job||'</td><td style="border:1px solid black" >'||mm.SCHEMA_USER||'</td><td style="border:1px solid black" >'||mm.last_time||'</td><td style="border:1px solid black" >'||mm.FAILURES||'</td><td style="border:1px solid black" >'||mm.BROKEN||'</td><td style="border:1px solid black" >'||mm.INTERVAL||'</td><td style="border:1px solid black" >'||mm.WHAT||'</td>';
        v_html:=v_html||'</tr>';
      end loop;
      v_html:=v_html||'</table>';
      v_html:=v_html||'</body>';
      v_html:=v_html||'</html>';
begin
SEND_EMAIL  ('mdssysmail@mic.com.tw'
,'luxus.liao@mic.com.tw;woody.wu@mic.com.tw'
,'Job Check Failures>0 from MDSDB'
,v_html
,'eagle.zhou@mic.com.tw'
,'luxus.liao@mic.com.tw'
,  'text/html;charset=gb2312'
, '10.98.0.165'
, 25);
end;
end if;
exception when others then
  dbms_output.put_line(sqlcode);
  rollback;
end;














心得:
1.一开始想在begin后输入for vv in ( select failures from dba_jobs) loop 再if vv.failures>0,发现这样不行,因为一个循环里面再出现另一个循环如下,发现发邮件的SEND_EMAIL不知道放在什么位置,因为SEND_EMAIL只能放在最后一个循环里面
for mm in ( select job,SCHEMA_USER,to_char(LAST_DATE,'yyyy-mm-dd hh24:mi:ss') last_time,WHAT,INTERVAL,FAILURES,BROKEN from dba_jobs where failures>0)  loop
        v_html:=v_html||'<tr>';
        v_html:=v_html||'<td style="border:1px solid black" >'||mm.job||'</td><td style="border:1px solid black" >'||mm.SCHEMA_USER||'</td><td style="border:1px solid black" >'||mm.last_time||'</td><td style="border:1px solid black" >'||mm.FAILURES||'</td><td style="border:1px solid black" >'||mm.BROKEN||'</td><td style="border:1px solid black" >'||mm.INTERVAL||'</td><td style="border:1px solid black" >'||mm.WHAT||'</td>';
        v_html:=v_html||'</tr>';
      end loop;
2.如果把SEND_EMAIL放在第一个循环里面,则第一个循环有多少次,则发送多少次邮件
3.如果把SEND_EMAIL放在第一个循环里面的第二个循环,则邮件发送的内容是第一个循环的最后一次的第二个循环里面的所有次数,相当于第一个循环没有意义,取的是第一个循环的最后一次
4.如果只有第一个循环,没有第二个循环,且SEND_EMAIL放在第一个循环里面,则第一个循环有多少次,则发送多少次邮件,且邮件内容只有表格标题和每次循环的一行表格内容,即结果不会出现一行表格标题和多行表格内容

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30126024/viewspace-2139887/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30126024/viewspace-2139887/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值