Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Обработка текста  [new]
rsolanov
Member

Откуда:
Сообщений: 930
Всем доброго )
Есть большой текст, в котором встроен xml-фрагмент. Подскажите пожалуйста оптимальный вариант как заменить такой фрагмент другой заранее заданной строкой:
declare
	@Doc nvarchar(max),
	@Str nvarchar(50) = 'update'


set @Doc = 
'TestTestTestTestTest
TestTestTestTestTest
TestTestTestTestTest
<document id="1" attachment-id="221" file-name="Приложение1.pdf"/>
<document id="2" attachment-id="222" file-name="Приложение2.pdf"/>
<document id="3" attachment-id="223" file-name="Приложение3.pdf"/>
TestTestTestTestTest
TestTestTestTestTest'

TestTestTestTestTest
TestTestTestTestTest
TestTestTestTestTest
update
TestTestTestTestTest
TestTestTestTestTest
7 окт 16, 16:57    [19756635]     Ответить | Цитировать Сообщить модератору
 Re: Обработка текста  [new]
_human
Member

Откуда:
Сообщений: 566
rsolanov,

declare
	@Doc nvarchar(max),
	@Str nvarchar(50) = 'update'


set @Doc = 
'TestTestTestTestTest
TestTestTestTestTest
TestTestTestTestTest
<document id="1" attachment-id="221" file-name="Приложение1.pdf"/>
<document id="2" attachment-id="222" file-name="Приложение2.pdf"/>
<document id="3" attachment-id="223" file-name="Приложение3.pdf"/>
TestTestTestTestTest
TestTestTestTestTest'

declare @rDoc nvarchar(max)
set @rDoc = REVERSE(@Doc)

print stuff(@Doc
			, charindex('<', @Doc)
			, len(@rDoc)-charindex('>', @rDoc)+1 - charindex('<', @Doc)+1
			, @Str)
7 окт 16, 17:27    [19756793]     Ответить | Цитировать Сообщить модератору
 Re: Обработка текста  [new]
rsolanov
Member

Откуда:
Сообщений: 930
_human
declare
	@Doc nvarchar(max),
	@Str nvarchar(50) = 'update'


set @Doc = 
'TestTestTestTestTest
TestTestTestTestTest
TestTestTestTestTest
<document id="1" attachment-id="221" file-name="Приложение1.pdf"/>
<document id="2" attachment-id="222" file-name="Приложение2.pdf"/>
<document id="3" attachment-id="223" file-name="Приложение3.pdf"/>
TestTestTestTestTest
TestTestTestTestTest'

declare @rDoc nvarchar(max)
set @rDoc = REVERSE(@Doc)

print stuff(@Doc
			, charindex('<', @Doc)
			, len(@rDoc)-charindex('>', @rDoc)+1 - charindex('<', @Doc)+1
			, @Str)
Возьму на вооружение, большое спасибо! )
7 окт 16, 17:36    [19756832]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить