我一直在尝试将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)
唯一的问题是,有多个嵌套循环包含同一个医疗机构的多个患者信息。因此,当我的例程拉出该数据并将其插入到表中时,像patientFirstname这样的列包含该循环中的所有名称。我想迭代这些循环,并将每个患者信息作为单独的记录。