【问题标题】:Getting XML from two different files into a single SQL Table将两个不同文件中的 XML 放入一个 SQL 表中
【发布时间】:2019-09-04 14:00:17
【问题描述】:

我有以下查询设置,没有问题:

WITH XmlFile (xmlData) AS
(
   SELECT CAST(BulkColumn AS XML) 
   FROM OPENROWSET(BULK 'D:\Timewise\results.xml', SINGLE_BLOB) AS x
)

INSERT INTO [dbo].[Timewise] ([Title], [IP])
SELECT c.value('(Title/text())[1]', 'VARCHAR(25)') AS [NameSite]
       , 'video' as [JournalUserName]
       , '' as [JournalPassword]
       , c.value('(IP/text())[1]', 'VARCHAR(25)') AS [IPAddress]
       , '4910' as [Port]
       , 'video' as [VideoUserName]
       , '' as [VideoPassword]
       , c.value('(IP/text())[1]', 'VARCHAR(25)') AS [VideoIP]
       , '4910' as [VideoPort]
       , '1' as [TotalCams]
       , '1' as [TotalVideoWindows]
       , 'true' as [IsRemote]
       , 'false' as [IsDefaultSite]
       ,'' as [hasTwoDifferentUsers]
       , '' as [DVRType]
       , 'false' as [IsRemoteLiveDataRunning]
FROM XmlFile CROSS APPLY xmlData.nodes('DocumentElement/Server_x0020_List') AS t(c);

下一个问题是其中一些节点包含来自另一个 xml 文件的数据,该文件位于 D:\Timewise\JournalBrowserSiteSettings.xml

我试图对这些做一些研究,以获得一个例子,虽然我已经涵盖了 WITH 语句:

WITH XmlFile (xmlData) AS
(
   SELECT CAST(BulkColumn AS XML) 
   FROM OPENROWSET(BULK 'D:\Timewise\results.xml', SINGLE_BLOB) AS x
)
, 
 XmlFile2 (xmlData) AS
(
   SELECT CAST(BulkColumn AS XML) 
   FROM OPENROWSET(BULK 'D:\Timewise\JournalBrowserSiteSettings.xml', SINGLE_BLOB) AS y
)

老实说,我不知道如何从另一个文件中提取这些数据(即 TotalCams、TotalVideoWIndows、IsRemote、hasTwoDIfferentUsers 和 DVRType),现在几乎 2 小时的搜索让我没有什么可继续的。

【问题讨论】:

  • 遗憾的是,您的帖子没有让我们继续下去。我们看不到您的屏幕或文件,也不知道您要做什么。有关改进此问题的想法,请参阅 herehere
  • 下一个问题是其中一些节点包含来自另一个 xml 文件的数据 ...第一个 XML 如何引用第二个 XML 来获取节点数据?还是您要在两个文件之间建立连接?
  • 我正在建立连接,因为“title”和“NameSite”是仅有的两个紧密连接,但它们是分开列出的。

标签: sql sql-server xml


【解决方案1】:

您似乎知道如何将 XML 放入 SQL 表中。

如何将 XML 文件放入两个不同的表中,然后根据公共键连接表,例如标题?

这会奏效。不会吗?

【讨论】:

  • 这可行,但是 XML 文件本身并没有真正的连接。在一个中,Title 被列为 111-01,在另一个中,它们被列为“Store 111”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-28
  • 1970-01-01
  • 1970-01-01
  • 2012-07-08
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
相关资源
最近更新 更多