[英]How to extract data in tabular format from XML field in Oracle database?
[英]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.