1
我有一個表定義如下嵌套的XML到表
CREATE TABLE "MENU"."ITEMS" (
"ID" NUMBER NOT NULL ENABLE,
"PARENT" NUMBER DEFAULT 0 NOT NULL ENABLE,
"OPID" NUMBER DEFAULT 0 NOT NULL ENABLE,
"VER" NUMBER DEFAULT 0 NOT NULL ENABLE,
"STATUS" NUMBER DEFAULT 0 NOT NULL ENABLE,
"RECORD_TIME" TIMESTAMP (9) WITH LOCAL TIME ZONE DEFAULT systimestamp NOT NULL ENABLE,
"MODIFIED_TIME" TIMESTAMP (6) DEFAULT systimestamp NOT NULL ENABLE,
"VALUE" VARCHAR2(255 BYTE) NOT NULL ENABLE,
"TITLE" VARCHAR2(255 BYTE)
)
使用XMLGEN
我創建的XML如下
<?xml version="1.0" ?>
<MENU ENCODE="0">
<ITEM VALUE="1" TITLE="test1">
<ITEM VALUE="1" TITLE="test10"/>
<ITEM VALUE="2" TITLE="test11"/>
<ITEM VALUE="3" TITLE="test12"/>
</ITEM>
<ITEM VALUE="2" TITLE="test2" >
<ITEM VALUE="1" TITLE="test21"/>
<ITEM VALUE="2" TITLE="test22"/>
<ITEM VALUE="3" TITLE="test23"/>
<ITEM VALUE="4" TITLE="test24"/>
<ITEM VALUE="5" TITLE="test25"/>
<ITEM VALUE="6" TITLE="test26"/>
</ITEM>
<ITEM VALUE="3" TITLE="test28">
<ITEM VALUE="1" TITLE="test29"/>
<ITEM VALUE="2" TITLE="hasan"/>
</ITEM>
<ITEM VALUE="4" TITLE="test4"/>
<ITEM VALUE="5" TITLE="test5"/>
<ITEM VALUE="6" TITLE="test6"/>
<ITEM VALUE="7" TITLE="test7"/>
<ITEM VALUE="8" TITLE="test8"/>
<ITEM VALUE="9" TITLE="test9"/>
</MENU>
現在我希望能夠導入XML文件像上面和填寫表ITEMS
。我嘗試使用xmltable和xmltype一起創建一個關閉xml的表,但問題是我無法使用此方法獲取父/子層次結構。
select * from
xmltable('/menu//item'
passing xmltype(lower(xmldata))
columns
value varchar2(10) path '@value',
title varchar2(10) path '@title'
);
有什麼辦法可以找到哪個項目是哪個項目的子項?按循環或光標或任何意思。時間消耗不是問題,因爲這將是一項離線工作。此外,這棵樹深入了很多,這裏顯示了兩個以上的級別。
謝謝!
這個炒鍋!非常感謝! – Cunning