将EDI X12 835 XML解析为SQL Server中的表

时间:2015-10-20 23:06:03

标签: sql-server xml edi x12

我一直在尝试将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这样的列包含该循环中的所有名称。我想迭代这些循环,并将每个患者信息作为单独的记录。

0 个答案:

没有答案