【问题标题】:How to read xml file in stored procedure and insert it in table in sql server如何在存储过程中读取xml文件并将其插入到sql server的表中
【发布时间】:2017-06-19 05:33:01
【问题描述】:

您好,我有以下 XML 文件。我如何读取它并使用存储过程将数据插入表中

<NewDataSet>
<Root RowNumber=1; answer = 1; TAnswer=null/>
<Root RowNumber=2; answer = 6; TAnswer=yes for Q 2/>
<Root RowNumber=3; answer = 9; TAnswer=null/>
<Root RowNumber=4; answer = -1; TAnswer=q 4 no suggestions/>
</NewDataSet>

【问题讨论】:

  • 您使用什么编程语言?您尝试从 XML 中解析数据是什么?
  • @BhavikShah 我们正在使用 c#
  • 这是我需要读取文件并将其存储在表中的格式
  • 检查this
  • 这不是正确的 XML,除非您在没有引号的情况下错误地复制粘贴它。

标签: c# sql sql-server xml


【解决方案1】:

考虑到您有一个有效的 xml,如下所示。

DECLARE @xml XML

SET @xml = '
<NewDataSet>
<Root RowNumber = "1" answer = "1" TAnswer = "null" />
<Root RowNumber = "2" answer = "6" TAnswer = "yes for Q 2" />
<Root RowNumber = "3" answer = "9" TAnswer = "null" />
<Root RowNumber = "4" answer = "-1" TAnswer = "q 4 no suggestions" />
</NewDataSet>'

SELECT RowNumber = T.A.value('@RowNumber', 'int'),
       answer = T.A.value('@answer', 'int'),
       TAnswer = T.A.value('@TAnswer', 'varchar(1000)')
FROM   @xml.nodes('//NewDataSet/Root') T (A) 

注意:您的XML 中有两个错误。 Attributes 值没有用 双引号 括起来。那么attributes 应该用空格而不是分号分隔

【讨论】:

  • 感谢您的输出帮助。得到了我想要的东西。实际上 xml 是由开发人员提供的,我必须阅读并将其插入表中。所以要求开发人员进行相应的更改
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多