0

我正在使用名为 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 文件,因此试图获得一些帮助/指导。

谢谢。

4

1 回答 1

0

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

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

CREATE PROCEDURE [dbo].[sbssp_InsertArchivedMessages]

(@doc varchar(max), @fromTo bit) 开始声明 @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

结束

问候。

于 2013-03-08T18:35:37.367 回答