How to replace ' or any special character in when using XMLELEMENT Oracle How to replace ' or any special character in when using XMLELEMENT Oracle oracle oracle

How to replace ' or any special character in when using XMLELEMENT Oracle


You can make use of utl_i18n package and unescape_reference() function in particular. Here is an example:

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;

Result:

RES   -------I'm  


SELECT dbms_xmlgen.convert( xmlagg(XMLELEMENT(E,'I''m'  ||':')).extract('//text()').getclobval() ,1)FROM dual;

I'm: