我正在将数据库从Oracle 10.1迁移到11.2,我遇到以下问题.
该声明
SELECT
'<?xml version="1.0" encoding="utf-8" ?>' || (Xml).getClobVal() AS XmlClob
FROM
(
SELECT
XmlElement( "Element1",
(
SELECT
XmlAgg(tpx.Xml)
FROM
(
SELECT
XmlElement("Element3",XmlForest('content' as Element4)) AS Xml
FROM dual
) tpx
) AS "Element2"
) AS Xml
FROM
dual
)
Run Code Online (Sandbox Code Playgroud)
在原来的10.1数据库上生成这样的XML ...
<?xml version="1.0" encoding="utf-8"?>
<Element1>
<Element2>
<Element3>
<ELEMENT4>content</ELEMENT4>
</Element3>
</Element2>
</Element1>
Run Code Online (Sandbox Code Playgroud)
在新的11.2系统上它看起来像这样......
<?xml version="1.0" encoding="utf-8"?>
<Element1>
<Element3>
<ELEMENT4>content</ELEMENT4>
</Element3>
</Element1>
Run Code Online (Sandbox Code Playgroud)
是否有一些我遗漏的环境变量告诉Oracle如何格式化它的XML.数据库中有数十万行PL/SQL; 如果事实证明他们改变了Oracle在版本之间格式化XML的方式,那将是一个巨大的重写任务.
希望以前有人来过这个.谢谢
我无权搜索 Metalink,但如果您有帐户,您可能想查看是否有任何关于此功能差异的帖子。
我可以使用您的示例查询在 10.2.0.1 与 11g 上重现此问题。我在 11g 的发行说明中没有看到任何描述此类默认行为更改的信息。如果您有支持合同,您还可以向 Oracle 支持提出案例。