我有以下查询。如何保持撇号( ' )完好无损,而不是将其替换为 &apos我还想处理其他字符,例如 &

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

最佳答案

您可以特别使用 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

关于sql - 使用 XMLELEMENT Oracle 时如何替换 ' 或任何特殊字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23369574/

10-13 06:10