Oracle插入替换双引号(“)到”

时间:2017-10-31 10:43:11

标签: xml oracle

我需要替换Oracle DB中的大型XML,但在插入后,双引号(“)将作为& quot:插入。以下是示例。

输入XML <Node>"Some text value here"</Node>

插入的XML <Node>&quot;Some text value here&quot;</Node>会注意&amp; quot

有人告诉我这里发生了什么吗?这是Oracle的默认行为吗?如何解决这个问题?

注意:我尝试使用SQL Developer插入并获得相同的结果。

2 个答案:

答案 0 :(得分:0)

是的,这是xml的正常行为 Xml有五个受限字符:&lt; (<), &amp; (&), &gt; (>), &quot; ("), and &apos; (')。 而且你不必担心它。

检查此示例。

create table example( xml xmltype);

insert into example values ('<Node>"Some text value here"</Node>') ;

select t.xml from example t;结果为<Node>&quot;Some text value here&quot;</Node>
但是,如果您select extractValue( t.xml,'//text()') from example t ; resutl是"Some text value here"

答案 1 :(得分:0)

要解决此问题,可以使用regexp_replace:

SELECT * FROM "codes" WHERE AND (NOT (("codes"."name" = "" OR "codes"."name" IS NULL)))