835 XML をテーブルに解析しようとしています。次のコードを使用しています
Declare @XML XML
SET @XML = (SELECT *
FROM OPENROWSET(BULK 'C:\835\XML\Processremitcombined.xml', SINGLE_BLOB) AS data)
Declare @NoClaims Int
INSERT INTO tblX12835_Copy(BPR_Payment, BPR_EffectiveEntryDate , TRn_TraceNumber, N1_HospiceNPI ,NM1_Patientlastname, NM1_PatientFirstName, NM1_HIC, DTM_claimDate)
SELECT
-- X.product.query('National_Provider_Identifier').value('.', 'INT'),
X.Product.query('Loop/Loop/CLP/CLP04').value('.', 'nvarchar(max)')' ',
X.Product.query('BPR/BPR16').value('.', 'datetime'),
X.Product.query('TRN/TRN02').value('.', 'nvarchar(25)'),
X.product.query('Loop/N1/N104').value('.', 'nvarchar(25)'),
X.product.query('Loop/Loop/NM1/NM103').value('.', 'nvarchar(max)'),
X.product.query('Loop/Loop/NM1/NM104').value('.', 'nvarchar(max)')' ',
X.product.query('Loop/Loop/NM1/NM109').value('.', 'nvarchar(max)')' ',
X.product.query('Loop/Loop/DTM/DTM02').value('.', 'nvarchar(max)')' '
FROM
@XML.nodes('/Interchange/Interchange/FunctionGroup/Transaction') AS X(Product)
唯一の問題は、同じ医療施設の複数の患者情報を含む複数のネストされたループがあることです。したがって、私のルーチンがそのデータを取得してテーブルに挿入すると、患者の名前などの列にそのループ内のすべての名前が含まれます。これらのループを反復処理して、各患者情報を個別のレコードとして取得したいと考えています。