2011-02-03 276 views
0

我需要解析一些可能會變得很大的XML,根節點可能包含1000個直接的子節點,每個子節點也可能很大。目前XML是在一個文件中,我成功地使用LINQ to XML讀入內存,並根據我的模式(一次在根目錄下的一個子元素)進行驗證。我們的目標之一是不要一次將整個文件讀入內存。LINQ to SQL/XML

另一個要求是能夠做同樣的事情,但這次XML將作爲CLOB或XML類型列存儲在Oracle 11g數據庫中。我知道LINQ to SQL不適用於Oracle。

我的問題是,如果XML存儲在SQL Server 2008數據庫的BLOB或NTEXT列中,我是否能夠一次查詢/讀取XML中的一個元素,就像我現在正在從文件?如果可能的話,那麼也許我可以找到一種方法來對付Oracle 11g數據庫。

感謝

回答

1

如果你把東西搬進到SQL Server 2008,請務必使用XML的數據類型,如果可能的。有了這個,你可以直接在數據庫上執行某些XML操作(XQuery)。

(N)TEXT自2005年起棄用 - 不再使用它!

使用(N)VARCHAR(MAX)代替(或XML)

或檢查出DevArt提供LinqConnect也支持 「LINQ到SQL」 的Oracle( 「LINQ到甲骨文」 :-)

+0

感謝建議。我一定會研究LinqConnect,同時也會試圖說服力量將XML路徑存儲到數據庫而不是其內容。畢竟,XML將首先在一個文件中呈現給我們。 – user361540 2011-02-05 12:56:50