2013-03-08 81 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

問候。

相關問題