Читаем XML файлы

Если надо прочитать отдельные элементы XML файла, то можно воспользоваться следующим примером:

 

SELECT @xml = CONVERT(xml, BulkColumn, 2) 
FROM OPENROWSET(BULK 'C:\file.xml', SINGLE_BLOB) as x

select(select  y.r.value('@value','varchar(3)')
from @xml.nodes('report/title/item') as y(r)
where y.r.value('@name','varchar(3)') = 'pole1') as pole1,
(select  y.r.value('@value','varchar(3)')
from @xml.nodes('report/title/item') as y(r)
where y.r.value('@name','varchar(3)') = 'pole2') as pole2,
y.r.value('@code','varchar(3)') as code,
y.r.value('@shifr','varchar(3)') as shifr,
y.r.value('@year','varchar(4)') as year,
y.r.value('@period','varchar(2)') as period
from @xml.nodes('report') as y(r)

А вот так читаем файлы в каталоге, предварительно получив их имена в переменную @file

declare @x nvarchar(max), @file nvarchar(100), @sql nvarchar(max)
set @file = N'C:\x.txt'
SET @sql = N'SET @y = (SELECT * FROM OPENROWSET(BULK N'''+@file+''', SINGLE_NCLOB) as x)'
exec sp_executesql @sql, N'@y nvarchar(max) output', @y = @x output
select @x
Комментарии закрыты