Как заменить & 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;

Я:

Другие вопросы по тегам