20

我需要直接从 oracle PL/SQL 包发送 HTML 电子邮件。这几乎可以正常工作。

我对从表中获取的某些数据包含诸如<S><L>和类似片段之类的事实存在疑问,这些片段有时被视为 HTML 标记,即使不是,它们也总是被忽略且从不显示。

因此,我需要在插入电子邮件正文之前转义此列。

是否有自动将 html 特殊字符转义为实体的功能?还是我需要replace('<', '&lt;', string)手动输入所有特殊字符?

4

2 回答 2

40

您可以使用 htf.escape_sc 函数:

SQL> select htf.escape_sc('Please escape <this> tag') from dual;

HTF.ESCAPE_SC('PLEASEESCAPE<THIS>TAG')
------------------------------------------------------------------
Please escape &lt;this&gt; tag
于 2010-06-16T13:39:55.633 回答
10

还可以使用可以处理 clob 的 DBMS_XMLGEN.CONVERT。

例子:

select DBMS_XMLGEN.CONVERT('<foo>') from dual

详情:https ://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_xmlgen.htm

于 2016-06-06T17:36:07.630 回答