12

我有以下查询。如何保持撇号 ( ') 完整且不被替换&apos 还有其他字符我也想处理&

SELECT RTRIM(XMLAGG(XMLELEMENT(E,'I''m'||':')).EXTRACT('//text()'),':')
  FROM dual;

输出:

I'm

谢谢。

4

2 回答 2

19

您可以特别使用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  
于 2014-04-29T16:32:02.413 回答
8
SELECT dbms_xmlgen.convert( xmlagg(XMLELEMENT(E,'I''m'
  ||':')).extract('//text()').getclobval() ,1)
FROM dual;

我是:

于 2017-01-19T18:07:02.007 回答