我在查詢Oracle數據庫,使用XMLELEMENT和XMLFOREST在每行中創建XML。 對於單表它工作正常。但我的要求是現在從3個不同的表中獲取數據。XML直接通過查詢ORACLE db
描述:
表主要,SecondTable,ThirdTable。其中Main和SecondTable具有唯一的TxnID,而在ThirdTable中它重複。
例子:
Main Table SecondTable ThirdTable
TxnId A B C D TxnId E F G H I TxnId
1001 3 4 6 5 1001 6 2 2 5 5 1001
1002 5 6 2 4 1002 5 6 6 8 9 1001
1003 5 4 2 6 1003 5 6 8 9 8 1001
我想reperesent在XML這些數據,到目前爲止,我能夠用得到的XML的形式第一行,
Select XMLELELEMENT(("Event", XMLFOREST(m.A as 'A',
m.B as 'B',
m.C as 'C') ||
XMLELEMENT("SecondTable",
XMLFOREST(s.E as 'E',
s.F as 'F')) ||
XMLELEMENT("ThirdTable",
XMLFOREST(t.G as 'G',
t.H as 'H',
t.I as 'I')))
from Main m
JOIN SecondTable s
ON m.TxnId=s.TxnId
JOIN ThirdTable t
ON s.TxnId=t.TxnId
該查詢會給我輸出like--
<Event>
<Main>
<A>3</A>
<B>4</B>
<C>6</C>
</Main>
<SecondTable>
<E>6</E>
<F>2</F>
</SecondTable>
<ThirdTable>
<G>2</G>
<H>5</H>
<I>5</I>
</ThirdTable>
</Event>
問題:ThirdTable的我想重複TxnIds形成3阻止在一個單一的XML。我希望我很清楚。 請幫幫我。 在此先感謝。
可以通過PL SQL完成嗎? 請指導我somebdy。 – Braine 2014-09-13 20:20:29
請編輯你的問題,並提供你想要的輸出和你得到的輸出的例子。 – 2014-09-14 20:16:15
此外,您發佈的查詢不會執行 - [請參閱此SQLFiddle](http://sqlfiddle.com/#!4/93201/3)。它會產生一個「缺少右括號」的錯誤(顯然是在第一次調用XMLELEMENT後有兩個左側的parens導致的),但是如果糾正了這個錯誤,就會出現「missing identifier」錯誤。這裏的人願意嘗試和幫助,但你必須儘自己的一份力量。請編輯你的問題,幷包含一個查詢,它會產生你顯示的輸出。謝謝。 – 2014-09-14 20:27:46