目前分類: 2008年03月的文章    檢視方式: 列表 摘要
for xml path('XXXXX'), binary base64, type
willeam 在天空部落發表於22:26:37 | BizTalk Server

在BizTalk專案的開發過程中,常常會須要將資料庫的資料抓取出來給BizTalk處理,這時候最常採用的方式是透過撰寫store procedure來取得資料庫資料.有時候store procedure只需要透過簡單的join語法就可以將資料抓取出來,有時候須加上cursor或複雜的處理後才能取得所需的資料.有時候還會面臨資料結構性複雜的問題,這時候可能就無法單純的用join的方式取得資料.在這邊介紹一個語法給大家參考,這個語法可幫助解決大部分複雜的結構性問題.

語法示範如下
ALTER PROCEDURE SP_GET_OP_ORDER
AS
BEGIN  
 SELECT *,
    (select * from OrderDetail where OrderHeader.OrderID=OrderDetail.OrderID
     for xml path('DETAIL'), binary base64, type) 
    from OrderHeader
    for xml path('HEAD'), binary base64, type
END
GO

執行後結果如下


透過此方法可以任意指定輸出的結構階層,假如HEAD底下還需要其他子節點也都可以輕易辦到.
不過,這個語法有個缺點,就是無法透過Schema Generation Wizard自動產生schema,所以只好用手動的方式,先執行該Store procedure取得sample xml後,再用xml regen出schema,以上是我個人的經驗,提供給大家參考.



系統公告
行事曆
Jan 2010
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
記事分類
我推薦誰
目前無名單
好時光貼曆
誰推薦我
目前無名單
誰來我家
RSS 訂閱
贊助商
其它資訊
本部落所刊登之內容,皆由作者個人所提供,不代表 yam 天空 本身立場。
POWERED BY
POWERED BY 天空部落
會員登入免費註冊