之前曾多次使用kettle进行作业监控,当Kettle需要通过邮件发送统计结果时,之前我的做法都是通过邮箱附件的方式实现.而对于结果集很小的场景,如果依然使用附件方式,整个邮件的核心内容会显得非常不直观.
而如何在邮箱正文中通过表格方式展现统计结果呢?
邮件正文中支持HTML格式,那解决办法就是自行拼出HTML,然后填到邮箱正文中.
自行拼接HTML串,是此任务中最麻烦的点,也是最关键的点.另外,要注意使用组件"设置变量"将统计结果写入变量中.
下面展示一下,将Oracle查询得到的结果集拼成HTML的实例:(Sql拼接HTML是一种方式,也可以尝试使用其他方式.)
网络异常,图片无法展示
|
概览
1. 准备邮箱正文
网络异常,图片无法展示
|
1.1 表输入:
WITH stu as ( SELECT 1001 AS ID,'小明' AS name,12 AS age,'北京' AS address FROM dual UNION ALL SELECT 1002 ,'小东',10,'南京' FROM dual UNION ALL SELECT 1003 ,'小飞',14,'天津' FROM dual UNION ALL SELECT 1004 ,'小连',13,'深圳' FROM dual UNION ALL SELECT 1005 ,'小楠',12,'大连' FROM dual UNION ALL SELECT 1006 ,'小红',9,'合肥' FROM dual ) SELECT replace(wm_concat(v_stu.info),',','') AS v_info from ( SELECT '<table border ="1">' AS info FROM dual union all SELECT '<tr><th>学号</th><th>姓名</th><th>年龄</th><th>城市</th></tr>' AS info FROM dual UNION all SELECT '<tr><td align="center">'||stu.id||'</td><td align="center">'||stu.name||'</td><td align="center">'||stu.age||'</td><td align="center">'||stu.address||'</td></tr>' from stu UNION ALL SELECT '</table>' AS info FROM dual ) v_stu
1.2 设置变量
网络异常,图片无法展示
|
设置变量
2. 邮件通知
网络异常,图片无法展示
|
image.png
3. 邮件效果
网络异常,图片无法展示
|
邮箱正文效果
至此,通过SQL将查询结果拼接HTML串的方式实现邮箱正文展示结果集的过程梳理完毕,希望能够对你有用!