簡體   English   中英

如何從Oracle數據庫中將關系數據提取到結構化XML文件中?

[英]How can I extract relational data from an Oracle database into a structured XML file?

我在Oracle數據庫(11gR2)中有一個簡單的表結構。 使用通用術語,我有“組”而不是包含一個或多個“項目”; 即一對多的關系。 因此“item”表有一個“group_id”字段,它是“group”表中同一字段的外鍵。

我可以用一個查詢從XML數據庫中提取這些數據嗎? 我希望結果是這樣的:

<groups>
  <group name="group1">
    <item name="item1">
    <item name="item2">
  </group>
  <group name="group2">
    <item name="item3">
    <item name="item4">
  </group>
</groups>

我開始在PL / SQL過程中將其寫為循環中的循環,即循環遍歷組,然后遍歷每個組中的項目,但這似乎是冗長的。 我希望有一個查詢使用“XMLTable”或“XMLForest”我可以用於這種結構。

使用XmlAgg(聚合你的GROUP BY ):

SELECT      CAST(
               XmlElement("groups",
                   XmlAgg(
                       XmlElement(
                           "group"
                          ,XmlAttributes(g.name as "name")
                          ,XmlAgg(
                              XmlElement(
                                   "item"
                                  ,XmlAttributes(i.name as "name")
                              )
                           )
                       )
                   )
               )
               AS VARCHAR2(4000)
            ) MY_XML
FROM        group g
 INNER JOIN item  i ON i.groupid = g.id
GROUP BY    g.name
;

請參閱XMLAgg文檔: http ://docs.oracle.com/cd/B28359_01/appdev.111/b28369/xdb13gen.htm#i1032865

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM