将记录集返回为Oracle的HTML
我有一个Oracle数据库,需要根据我的DotNet Web应用程序中发生的事件发送电子邮件通知。电子邮件通知采用HTML格式。根据要生成的电子邮件通知,我使用了不同的模板。每个连接到一个Sproc。所以当事件被调用时,我将一个Id传递给处理程序,并调用一个存储过程。然后,我得到HTML格式的电子邮件模板,并且标签将被替换为sproc中的字段。然后,我搜索并替换记录集中相应字段的模板中的任何标签。电子邮件recipeint被放入,并以HTML格式发送电子邮件。这一切工作正常。将记录集返回为Oracle的HTML
但是我现在有要求在电子邮件通知中显示表中的多行。例如,图书馆的书籍详情。我可以通过迭代记录集并为每个记录集生成一个新行来获取所有行并在dotnet中快速生成HTML表行,但是他会打破我常用的标记替换方法。 所以我想知道我可以在PL SQL中构建这些多行,并将它作为一个字段返回,我可以用记录集中字段的内容替换我的html电子邮件模板中的标记。这个字段将包含所有需要的记录的HTML版本......准备好准备好作为表格。因此,我的模板中会有一个名为OVerDueBooks的标记,并使用我的记录集中的Field Over_Due_Books替换该标记。该字段将以html格式拥有所有过期的书籍记录,因此我只需将标签替换为内容即可。
谢谢米克
感谢加里,
我对EE和其作品一种享受了这个小宝石从Sliqhtwv。感谢您的帮助..很多apprieciated。
从Sliqhtwv:
drop table tab1 purge;
create table tab1(col1 char(1), col2 char(1), col3 char(1));
insert into tab1 values('a','1','A');
insert into tab1 values('b','2','B');
insert into tab1 values('c','2','C');
commit;
select xmlagg(xmlelement("TR",
xmlforest(col1 as "TD",col2 as "TD",col3 as "TD"))).getclobval()
from tab1
什么是数据量?只要收集的长度不超过4000字节,它应该不难。
搜索各种机制的STRAGG以将VARCHAR2集合聚合到单个行中。
其余部分应该仅仅指刚成为SELECT '<tr>'||....||'</tr>' ....
看的物质转化为UTL_URL.ESCAPE收拾掉可能与HTML干涉任何字符。
感谢加里..我会去看看。我期待看到有一些HTML版本的dbms_xmlgen可以生成XML版本,或者是您建议的,并且必须在sproc中手工雕刻 – Doiremik 2011-06-09 12:55:35