我的工作中, 常常需要生成各种html报表,然后用Oracle Scheduler job排程发送给用户.
生成html有很多是重复的代码.
利用该通用函数,可写好sql后, 直接生成报告.
然后加上html头部,尾部即可直接利用mail包发送.
原理.
1. oracle的dbms_xmlgen可以将sys_refcursor生成xml数据.
2. 该package可同时利用xslt转换数据.
-
function get_htmltable(p_cur sys_refcursor) return clob is
-
ctx DBMS_XMLGEN.ctxhandle;
-
xml CLOB;
-
-
v_xslt clob := q'#
-
-
-
-
-
-
-
#';
-
-
BEGIN
-
ctx := DBMS_XMLGEN.newcontext (p_cur);
-
DBMS_XMLGEN.setxslt (ctx, v_xslt);
-
--该xslt转换必须要 dbms_xmlgen.setnullhandling(ctx,2);
-
--否则生成的xml会丢弃null栏位,
-
dbms_xmlgen.setnullhandling(ctx,2);
-
xml := DBMS_XMLGEN.getxml (ctx, 2);
-
DBMS_XMLGEN.closecontext (ctx);
-
return xml;
-
end;
阿飞
2014/12/13
阅读(2284) | 评论(0) | 转发(0) |