2013-03-08 48 views
0

我正在使用名为JPOS的第三种产品,它有一个XMLPackager,我从此包装器获取一个字符串,该字符串包含XML格式的记录,例如:什么是将XML字符串导入到SQL Server表中的最佳方式

<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_VALUEs进行定义。我不确定在Java中使用这种方法的最佳方法是什么。我的理解是,SQL Server可以接受一个XML字符串(不是文档)并进行插入。最好是解析每个值,然后放入一个列表中填入每个值?这是我第一次使用XML文件,因此试图获得一些帮助/方向。

谢谢。

回答

0

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

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

CREATE PROCEDURE [dbo].[sbssp_InsertArchivedMessages] 

( @doc VARCHAR(最大), @fromTo位 ) AS BEGIN DECLARE @idoc INT,@lastId INT EXEC sp_xml_preparedocument中@idoc输出,@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

问候。

相关问题