如何在Oracle PL/SQL中将<,>和&字符转义为html实体

SWi*_*ilk 19 html oracle plsql escaping html-escape-characters

我需要直接从oracle PL/SQL包发送HTML电子邮件.这几乎没问题.

我有问题的是,一些从表中获取的数据包含之类的东西<S>,<L>和类似的片段,有时AR视为HTML标签,即使没有,他们总是忽略,从不显示.

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

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

Ton*_*ews 36

您可以使用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
Run Code Online (Sandbox Code Playgroud)


小智 9

另外还有DBMS_XMLGEN.CONVERT可以处理clob.

例:

select DBMS_XMLGEN.CONVERT('<foo>') from dual
Run Code Online (Sandbox Code Playgroud)

详细信息:https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_xmlgen.htm