如何转义 <、> 和 &Oracle PL/SQL 中 html 实体的字符

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

I need to send HTML emails directly from oracle PL/SQL package. This works almost fine.

我对从表中提取的某些数据包含诸如 和类似的片段的事实有疑问,这些片段有时被视为 HTML 标签,即使不是,它们也总是被忽略并且从不显示.

I have problem with the fact that some of the data fetched from a table contain things like <S>, <L>, and similar fragments, which sometimes ar treated as HTML tags, and even if not, they are always ignored and never displayed.

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

So, I need to escape this column before inserting into email body.

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

Is there a function to escape html special chars into entities automaticly? Or do I need to replace('<', '&lt;', string) manually all the special characters?

推荐答案

可以使用htf.escape_sc函数:

You can use the htf.escape_sc function:

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

HTF.ESCAPE_SC('PLEASEESCAPE<THIS>TAG')
------------------------------------------------------------------
Please escape &lt;this&gt; tag

相关文章