Как заменить & apos; или любой специальный символ при использовании Oracle XMLEMENT
У меня есть запрос ниже. Как сохранить апостроф ('
) в целости и сохранности не заменяется &apos
Есть и другие персонажи, и я хочу, чтобы как &
SELECT RTRIM(xmlagg(XMLELEMENT(E,'I''m'||':')).extract('//text()'),':')
FROM dual;
Выход:
I'm
Благодарю.
2 ответа
Решение
Вы можете использовать пакет utl_i18n и функцию unescape_reference () в частности. Вот пример:
clear screen;
column res format a7;
select utl_i18n.unescape_reference(
rtrim(
xmlagg( -- use of xmlagg() function in
-- this situation seems to be unnecessary
XMLELEMENT(E,'I''m'||':')
).extract('//text()'),':'
)
) as res
from dual;
Результат:
RES
-------
I'm
SELECT dbms_xmlgen.convert( xmlagg(XMLELEMENT(E,'I''m'
||':')).extract('//text()').getclobval() ,1)
FROM dual;
Я: