将XML字符串导入SQL Server表的最佳方法是什么?

时间:2013-03-08 17:13:54

标签: java xml

我正在使用名为JPOS的第三个产品,它有一个XMLPackager,我从这个打包器获取一个包含XML格式记录的字符串,如:

<MACHINE><B000>STRING_VALUE</B000><B002>STRING_VALUE</B002><B003>STRING_VALUE</B003><B004>STRING_VALUE</B004><B007>STRING_VALUE</B007><B011>STRING_VALUE</B011><B012>STRING_VALUE</B012><B013>STRING_VALUE</B013><B015>STRING_VALUE</B015><B018>STRING_VALUE</B018><B028>STRING_VALUE</B028><B032>STRING_VALUE</B032><B035>STRING_VALUE</B035><B037>STRING_VALUE</B037><B039>STRING_VALUE</B039><B041>STRING_VALUE</B041><B043>STRING_VALUE</B043><B048>STRING_VALUE</B048><B049>STRING_VALUE</B049><B058>STRING_VALUE</B058><B061>STRING_VALUE</B061><B063>STRING_VALUE</B063><B127>STRING_VALUE</B127></MACHINE>

我有一个SQL服务器表,其中包含每个列出的列。并不重要,但我可能已经定义了特定的STRING_VALUE。我不确定在Java中使用它的最佳方法是什么。我的理解是SQL Server可以采用XML字符串(而不是文档)并进行插入。是最好解析每个值,然后放入一个列表,将每个值填充到?这是我第一次使用XML文件,因此试图获得一些帮助/指导。

感谢。

1 个答案:

答案 0 :(得分:0)

抱歉,我的一位同事能够提供帮助并提供快速解答。我将从我的Java代码中尝试它,看起来它应该工作得很好。不管怎么说,还是要谢谢你。

这是她创建的SP,我可以传递我的XML字符串和位值:

CREATE PROCEDURE [dbo].[sbssp_InsertArchivedMessages]

(       @doc varchar(max),       @fromTo位 ) 如 开始       DECLARE @idoc int,@ lastId int       EXEC sp_xml_preparedocument @idoc OUTPUT,@ doc

  INSERT INTO [dbo].[tblArchivedMessages]
  SELECT * FROM OPENXML(@idoc, '/MACHINE', 2) WITH [dbo].[tblArchivedMessages]

  SET @lastId = (SELECT IDENT_CURRENT('tblArchivedMessages'))

  UPDATE [dbo].[tblArchivedMessages] 
    SET FromToMach = @fromTo 
    WHERE ID = @lastId

END GO

问候。