если файл не большой (до 8000 символов), то bulk insertните во временную таблицу и сделайте выборку
--объявляем переменные
declare @idoc int
declare @xml varchar(8000)
--испортим данные XML
drop table #t
create table #t(xml varchar(8000))
bulk insert #t from '\\vlasov\svalka\test.xml' with(ROWTERMINATOR = '')
--парсим документ
set @xml = (select substring(xml, charindex('<?xml', xml), 8000) from #t)
exec sp_xml_preparedocument @idoc OUTPUT, @xml
--получаем результат
select
*
from
-- openxml(@idoc, '/SOAP-ENV:Envelope/SOAP-ENV:Body/axl:executeSQLQueryResponse/return', 8)
openxml(@idoc, '//return/row', 2)
with (
devicepool varchar(20) 'devicepool',
devicename varchar(20) 'devicename',
description varchar(20) 'description',
display varchar(20) 'display',
label varchar(20) 'label',
intnumber varchar(20) 'intnumber',
extnumber varchar(20) 'extnumber'
)
exec sp_xml_removedocument @idoc
где @xml и есть внутренности файла
если файл большой, то надо извращаться, чтобы работать с типом данных TEXT
I Have Nine Lives You Have One Only THINK! |