最近我设法解析了我的第一个xml文件。它是12 MB。它使用该代码完美地工作:
DECLARE @DocID INT;
DECLARE @DocXML XML;
SELECT @DocXML = CAST(XMLSource AS XML)
FROM OPENROWSET(BULK 'C:\simple1.xml', SINGLE_BLOB)
AS X (XMLSource);
EXECUTE sp_xml_preparedocument @DocID OUTPUT, @DocXML;
我将它放入变量中并使用2个游标我将记录逐行放入表中。
我尝试将相同的方法应用到我的新16 GB文件中,并且在执行EXECUTE sp_xml_preparedocument @DocID OUTPUT, @DocXML;
时出现错误:
无法创建XML文档,因为服务器内存不足。使用 sp_xml_removedocument用于发布XML文档。
有什么方法可以克服它?我应该使用其他方法来使用我的XML文件而不将其全部放入内存吗?或者唯一的方法是使用C#和xmlreader来读取部分文件?