【发布时间】:2009-04-14 19:20:25
【问题描述】:
我至少有 100 个 xml 文件,每个文件大约 300 MB,其中的电子邮件消息基本上采用下面列出的格式。
现在我的问题是,如何将这些数据导入 SQL Sever 数据库,以便我可以对这些数据执行查询。我的查询大致如下:某个人是否在给定时间段内向另一个人发送了电子邮件,主题/正文等具有某些关键字。
这是我尝试过的:
1) 将每个 XML 文件加载到 SQL Server 中的 XML 数据类型字段中。使用这种方法,我无法提出 Xpath(?) 查询来做我需要的事情。甚至可以在 Xpath 中执行此操作吗?
2) 使用 ReadXML 和 ReadSchema 将每个文件加载到 .NET 数据集中。这似乎可以很好地加载,并且似乎使用外键等创建了正确数量的 DataTable 但这意味着我将不得不在数据库上创建 100 组表。以某种方式将所有内容连接到一个表中,然后执行查询。
如果你们有任何其他建议,请告诉我。
谢谢。
<Message>
<MsgID>4651286700000CAA00EF00010000</MsgID>
<MsgTime>2007-05-21-01.04.39.000000</MsgTime>
<MsgTimeUTC>1179723879</MsgTimeUTC>
<MsgLang>CODE 1252</MsgLang>
<Sender>
<UserInfo>
<FirstName>X</FirstName>
<LastName>Y</LastName>
<AccountName>121212</AccountName>
<CorporateEmailAddress>someone@somewhere.com</CorporateEmailAddress>
</UserInfo>
</Sender>
<Recipient DeliveryType = " ">
<UserInfo>
<FirstName>A</FirstName>
<LastName>B</LastName>
<FirmNumber>7593</FirmNumber>
<AccountName>STRATEGIC AS</AccountName>
<AccountNumber>604806</AccountNumber>
<CorporateEmailAddress>A@B.COM</CorporateEmailAddress>
</UserInfo>
</Recipient>
<Subject>
Please review the following
</Subject>
<Attachment>
<FileName>37715772.htm</FileName>
<FileID>503242486522279_37715772.htm</FileID>
<FileSize>31175</FileSize>
</Attachment>
<MsgBody>
This is the message Body
</MsgBody>
【问题讨论】:
标签: .net sql-server xml