A Microsoft extension to the ANSI SQL language that includes procedural programming, local variables, and various support functions.
Hi @Bammes ,
Please try the following solution.
T-SQL CROSS APPLY statements are simulating relationships in the hierarchical XML.
SQL
WITH rs (xmlData) AS
(
SELECT TRY_CAST(BulkColumn AS XML)
FROM OPENROWSET(BULK N'e:\Temp\Bammes-7329.xml', SINGLE_BLOB) AS x
)
SELECT p.value('@ProcessID', 'VARCHAR(10)') AS ProcessID
, d.value('@DocID', 'VARCHAR(20)') AS DocID
, f.value('(FIELD[@Name="ABSENDER"]/@Value)[1]', 'VARCHAR(100)') AS [Field.ABSENDER]
, f.value('(FIELD[@Name="ABSENDER_BRIEF"]/@Value)[1]', 'VARCHAR(100)') AS [Field.ABSENDER_BRIEF]
, f.value('(FIELD[@Name="ADRESSE"]/@Value)[1]', 'VARCHAR(100)') AS [Field.ADRESSE]
, f.value('(FIELD[@Name="EMAIL"]/@Value)[1]', 'VARCHAR(100)') AS [Field.EMAIL]
, r.value('(FIELD[@Name="DOKTYP"]/@Value)[1]', 'VARCHAR(100)') AS [TA_GENR.DOKTYP]
, r.value('(FIELD[@Name="VSNR"]/@Value)[1]', 'VARCHAR(100)') AS [TA_GENR.VSNR]
, r.value('(FIELD[@Name="SDNR"]/@Value)[1]', 'VARCHAR(100)') AS [TA_GENR.SDNR]
FROM rs
CROSS APPLY xmlData.nodes('/STACK/PROCESS') AS t(p)
CROSS APPLY p.nodes('DOCUMENT') AS t1(d)
CROSS APPLY d.nodes('FIELDGROUP[@Name="default"]') AS t2(f)
CROSS APPLY d.nodes('TABLE/ROW') AS t3(r)