利用oracle xml包将sys_refcursor游标生成html表格

2320阅读 0评论2014-12-13 gangjh
分类:Oracle

我的工作中, 常常需要生成各种html报表,然后用Oracle Scheduler job排程发送给用户.
生成html有很多是重复的代码.

利用该通用函数,可写好sql后, 直接生成报告.
然后加上html头部,尾部即可直接利用mail包发送.

原理.
1. oracle的dbms_xmlgen可以将sys_refcursor生成xml数据.
2. 该package可同时利用xslt转换数据.

点击(此处)折叠或打开

  1. function get_htmltable(p_cur sys_refcursor) return clob is
  2.   ctx DBMS_XMLGEN.ctxhandle;
  3.   xml CLOB;

  4.   v_xslt clob := q'#



  5.    
  6.       

  7.         
  8.           

  9.         
  10.       

  11.         
  12.      
  13.          

  14.            
  15.              

  16.            
  17.          

  18.      
  19.    



  20. #';

  21. BEGIN
  22.   ctx := DBMS_XMLGEN.newcontext (p_cur);
  23.   DBMS_XMLGEN.setxslt (ctx, v_xslt);
  24. --该xslt转换必须要 dbms_xmlgen.setnullhandling(ctx,2);
  25. --否则生成的xml会丢弃null栏位,
  26.   dbms_xmlgen.setnullhandling(ctx,2);
  27.   xml := DBMS_XMLGEN.getxml (ctx, 2);
  28.   DBMS_XMLGEN.closecontext (ctx);
  29.   return xml;
  30. end;

       阿飞
       2014/12/13
上一篇:Oracle pl/sql解析openoffice ods文檔
下一篇:dual 在plsql函數中的影響