首页 > 解决方案 > 将 SQL 查询转换为电子邮件的 HTML 表

问题描述

我需要一些帮助这个问题。我想要对电子邮件的 html 表进行 sql 查询,但我不知道如何转换                               

这是 sql 查询

解释计划

  select disk_reads, sql_id, DIRECT_WRITES, BUFFER_GETS, USER_IO_WAIT_TIME, CPU_TIME, FETCHES from (select *
  from v$sql
  order by disk_reads DESC ) where rownum<=10


  select * from table(dbms_xplan.display_awr('sql_id'));

标签: htmlplsql

解决方案


值得OWA一试这个古老的框架。

create or replace procedure htmldemo(p_sql in varchar2) is
  page HTP.htbuf_arr;
  version INTEGER; 
  cgiNames OWA.vc_arr;
  cgiValues OWA.vc_arr;
  lines NUMBER := 99999999999;
begin
  version := OWA.initialize;
  OWA.init_cgi_env (0, cgiNames, cgiValues);
  owa_util.cellsprint(p_sql);  
  OWA.get_page (thepage => page, irows => lines);
  FOR i IN 1 .. lines LOOP
    dbms_output.put_line(page (i));
  END LOOP;
end;
/

示范:

begin
  htmldemo('select e.ename, e.job, d.dname from emp e join dept d on d.deptno = e.deptno and rownum <= 3');
end;
/

输出:

<TR>
<TD>KING</TD>
<TD>PRESIDENT</TD>
<TD>ACCOUNTING</TD>
</TR>
<TR>
<TD>BLAKE</TD>
<TD>MANAGER</TD>
<TD>SALES</TD>
</TR>
<TR>
<TD>CLARK</TD>
<TD>MANAGER</TD>
<TD>ACCOUNTING</TD>
</TR>

此演示获取您在数组中生成的任何内容的 HTML,您可以从那里获取它。另请注意,这只会生成表行。您可以使用其他OWA功能来构建页面的其余部分,也可以自己构建。

对于关键系统,我不会依赖它,但对于偶尔的状态电子邮件,它可能会起作用。


推荐阅读