0

私は JPOS と呼ばれる 3 番目の製品を使用しており、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

申し訳ありませんが、私の同僚の1人が手伝って迅速な回答を提供することができました。Javaコードから試してみますが、うまくいくはずです。とにかくありがとう。

これが彼女が作成したSPで、XML文字列とビット値を渡すことができます。

CREATE PROCEDURE [dbo].[sbssp_InsertArchivedMessages]

(@doc varchar(max)、@ fromTo bit)AS BEGIN 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

よろしく。

于 2013-03-08T18:35:37.367 に答える