加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle 10.1和11.2使用相同的语句生成不同的XML

发布时间:2020-12-12 13:14:19 所属栏目:百科 来源:网络整理
导读:我正在将数据库从Oracle 10.1迁移到11.2,我遇到以下问题. 该声明 SELECT '?xml version="1.0" encoding="utf-8" ?' || (Xml).getClobVal() AS XmlClobFROM( SELECT XmlElement( "Element1",( SELECT XmlAgg(tpx.Xml) FROM ( SELECT XmlElement("Element3",Xm
我正在将数据库从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
)

在原来的10.1数据库上生成这样的XML …

<?xml version="1.0" encoding="utf-8"?>
<Element1>
  <Element2>
    <Element3>
      <ELEMENT4>content</ELEMENT4>
    </Element3>
  </Element2>
</Element1>

在新的11.2系统上它看起来像这样……

<?xml version="1.0" encoding="utf-8"?>
<Element1>
  <Element3>
    <ELEMENT4>content</ELEMENT4>
  </Element3>
</Element1>

是否有一些我遗漏的环境变量告诉Oracle如何格式化它的XML.数据库中有数十万行PL / SQL;如果事实证明他们改变了Oracle在版本之间格式化XML的方式,那将是一个巨大的重写任务.

希望以前有人来过这个.
谢谢

解决方法

看起来像v10中可能存在的错误,因为您没有明确告诉DBMS Element2是XMLElement. XMLAgg返回一个Nodeset,只是因为你给它一个别名“Element2”似乎并没有表明它应该嵌套在该名称的元素中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读