2011-02-03 234 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