【问题标题】:how to get multiple xml-elements without using xmlaggregation如何在不使用 xmlaggregation 的情况下获取多个 xml 元素
【发布时间】:2013-08-14 14:08:01
【问题描述】:

我需要从 oracle 数据库创建以下 xml 结构 每个调查可以有多个参与者。 我不确定使用 XMLElement 创建它而不收到消息“ORA-01427 子查询返回多于一行” 我可以尝试使用 dbms_xmldom(以前从未这样做过),但我想知道是否有人知道如何仅使用普通的 Oracle SQL-XML 函数(XMLElement,XMLAggr)来生成它

    <NieuweSurveys>
        <Survey>
            <Surveynaam>2013-02-01</Surveynaam>         
            <Startdatum>2013-02-01</Startdatum>
            <Einddatum>2013-02-15</Einddatum>
            <Deelnemer>
                <Voornaam>Tilde</Voornaam>
                <Tussenvoegsel/>
                <Achternaam>DeelnemerA</Achternaam>
                <Geslacht>man</Geslacht>
                <Emailadres>tilde.deelnemer.a@tjip.com</Emailadres>
                <Voorkeurstaal>nl</Voorkeurstaal>
                <Account>Schouten & Nelisen</Account>
                <Functie>bouwer</Functie>
            </Deelnemer>
            <Deelnemer>
                <Voornaam>Tilde</Voornaam>
                <Tussenvoegsel/>
                <Achternaam>DeelnemerB</Achternaam>
                <Geslacht>vrouw</Geslacht>
                <Emailadres>tilde.deelnemer.b@tjip.com</Emailadres>
                <Voorkeurstaal>nl</Voorkeurstaal>
                <Account>Schouten & Nelisen</Account>
                <Functie>tester</Functie>
            </Deelnemer>
        </Survey>
</NieuweSurveys>

【问题讨论】:

    标签: xml oracle


    【解决方案1】:

    假设所有数据都来自一个名为 dataview 的表(或视图)...

    我认为您将需要在其中使用 XMLForest。例如,

    Create or Replace VIEW dataviewxml as
    Select 
    XMLElement("NieuweSurveys", 
     XMLForest(d.Surveynaam as Surveynaam, d.Startdatum as Startdatum, d.Eindatum as Eindatum,
      XMLForest(d.Voornaam as Voornaam, d.Tussenvoegsel as Tussenvoegsel
               ) as "Deelnemer"
             ) as "Survey"
             ) as "Result"
    from dataview d;
    

    【讨论】:

      【解决方案2】:

      使用带有 SQL/XML 标准函数 XMLQueryXMLTable 的 XQuery 表达式。 以下是与从关系数据构造 XML 相关的两个示例:

      【讨论】:

        猜你喜欢
        • 2016-05-15
        • 2021-10-29
        • 2013-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-23
        相关资源
        最近更新 更多