Как избежать <,> и & символов для html-объектов в Oracle PL/SQL
Мне нужно отправить HTML-письма прямо из пакета ORACLE PL/SQL. Это работает почти нормально.
У меня проблема с тем, что некоторые из данных, полученных из таблицы, содержат такие вещи, как <S>
, <L>
и подобные фрагменты, которые иногда обрабатываются как теги HTML, и даже если их нет, они всегда игнорируются и никогда не отображается.
Итак, мне нужно скрыть этот столбец, прежде чем вставлять его в тело электронной почты.
Есть ли функция для автоматического выделения html специальных символов в объекты?
Или мне нужно replace('<', '<', string)
вручную все специальные символы?
Ответы
Ответ 1
Вы можете использовать функцию htf.escape_sc:
SQL> select htf.escape_sc('Please escape <this> tag') from dual;
HTF.ESCAPE_SC('PLEASEESCAPE<THIS>TAG')
------------------------------------------------------------------
Please escape <this> tag
Ответ 2
Также доступно DBMS_XMLGEN.CONVERT, которое может обрабатывать clob.
Пример:
select DBMS_XMLGEN.CONVERT('<foo>') from dual
Подробности: https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_xmlgen.htm