我需要替换Oracle DB中的大型XML,但在插入后,双引号(“)将作为& quot:插入。以下是示例。
输入XML <Node>"Some text value here"</Node>
插入的XML <Node>"Some text value here"</Node>
会注意&amp; quot
有人告诉我这里发生了什么吗?这是Oracle的默认行为吗?如何解决这个问题?
注意:我尝试使用SQL Developer插入并获得相同的结果。
答案 0 :(得分:0)
是的,这是xml的正常行为
Xml有五个受限字符:< (<), & (&), > (>), " ("), and ' (')
。
而且你不必担心它。
检查此示例。
create table example( xml xmltype);
insert into example values ('<Node>"Some text value here"</Node>') ;
select t.xml from example t;
结果为<Node>"Some text value here"</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)))