Oracle XML - 如何在标记之间转义文本。

时间:2014-08-15 16:57:52

标签: sql xml oracle

如果我有一个包含以下xml文档的CLOB列

<xml>
<Country>Trinidad & Tobago </Country>
</xml>

我想逃避&符号而不是标签。

我知道我可以使用这种方法:

Select DBMS_XMLGEN.CONVERT(country) from country_list;

以上查询将转义所有特殊字符。即< > and &.有没有办法我只能逃避标签之间的任何事情。即转义后的输出是

<xml>
<Country>Trinidad &amp; Tobago </Country>
</xml>

1 个答案:

答案 0 :(得分:1)

以类似于以下的方式使用REGEXP_REPLACE

SELECT REGEXP_REPLACE(COUNTRY,
                      '(<.*>.*)(&)(.*</.*>)',
                      '\1&amp;\3') AS REPLACEMENT_TEXT
  FROM COUNTRY_LIST;

SQLFiddle here

分享并享受。