我花了幾天的時間尋找簡單的解決方案來解決以下問題,我需要一些幫助。我有一個有兩列的Oracle表,recid(Account Number)作爲主鍵,xmlrecord存儲所有的xml數據。我試圖使用SQL查詢爲我們的應用程序導出我們有多值項目的值。排除數據損壞時,如果存在c1 m =「1」等,則始終存在相應的c2 m =「1」和c3 m =「1」。該表太大而無法多次提取每個項目,因此我需要在行的一次訪問中將它們全部從xmlrecord中提取出來。我嘗試了內部連接(1 = 1)和xmltables,但總是以返回的數據或新行中的每個新匹配結束NULLS。來自多個元素的Oracle SQL extractvalue
RECID XMLRECORD
-----------------------------------
0000001 <row><c1>test</c1><c2>test2</c2>....</row>
0000002 <row><c1>test</c1><c2>test2</c2>....</row>
上面記錄將作爲工作有罰款:從頂層提取值不爲我在這種情況下,由於XML的結構
我們的基表的數據結構工作沒有多個有價值的領域。當我掙扎是當存儲在XMLRecord數據就像下面:
<row>
<c1>test1</c1>
<c1 m=1>test1_2</c1>
<c2>test2</c2>
<c2 m=1>test2_2</c2>
<c3>test3</c3>
<c3 m=1>test3_2</c3>
</row>
我想輸出的格式如下:
RECID Col1 Col2 Col3
-----------------------------------
0000003 test1 test2 test3
0000003 test1_2 test2_2 test3_2
0000004 test1 test2 test3
0000004 test1_2 test2_2 test3_2
問題是,您的XML結構是borked。在同一個環境中名稱完全相同的兩個不同元素不可避免地會導致問題。 – APC