我有以下結構的一個xml:獲取XML屬性對甲骨文CLOB與XML結構
<xml>
<ele1>
<ele2>
<Attribute Key="x1" Value="V1" />
<Attribute Key="x2" Value="V2" />
<Attribute Key="x3" Value="V3" />
<Attribute Key="x4" Value="V4" />
<Attribute Key="x5" Value="V5" />
</ele2>
</ele1>
</xml>
每個鍵= x1和重點=×3,我想要得到的價值。
目標表/ select應該有以下列: ele2 | x1 | X2
實際我有以下代碼:
SELECT Description.*, Other.*
FROM (select XMLTYPE.createXML(XMLCODE) as XMLCODE from Table) myxml,
XMLTABLE('/ele1/ele2/Attribute[@Key="x1"]'
PASSING myxml.XMLCODE
COLUMNS
"Description" VARCHAR2(255) PATH '@Value'
) Description,
XMLTABLE('/ele1/ele2/Attribute[@Key="x2"]'
PASSING myxml.XMLCODE
COLUMNS
"Other" VARCHAR2(255) PATH '@Value'
) Other;
問題是XMLTables沒有加入,我得到一個笛卡兒積。任何想法還是有一個更簡單的方法?
您所顯示的代碼並未顯示您遇到的問題。如果XPath將'/ xml'添加到開始,所以它找到任何東西,它只返回一行。即使添加第二行樣本數據仍然只會得到兩個結果 - 而不是四個,正如您似乎暗示的那樣。你可以編輯你的問題,以顯示更多的代表性數據,你目前得到的輸出和你想要的輸出嗎?我可以猜到你可能真的有什麼,但我不應該... –