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