2013-04-12 6 views
0

У меня есть строка, какSQL Server - как вставить подстроку?

`...<..../><... id='someID' .../><...../>....` 

(общая длина этой строки больше, чем 15k символов, это форма XML определение)

Внутри этой строки у меня есть значение someID. Я хочу поставить после элемента, содержащего, что ценностные новую строку:

...<..../><... id='someID' .../><my_new_string><...../>.... 

Я попытался разбить эту длинную строку, основываясь на значении someID, но такой подход является слишком медленным. Как я могу добиться этого с другой стороны?

Возможно, вы можете выбрать подстроку <... id='someID' .../>?

ответ

0

Вы пытались использовать Заменить? Например:

REPLACE(yourString, yourPattern, yourPattern + newString); 

Используя ваш пример, это будет выглядеть примерно так:

REPLACE('...<..../><... id='someID' .../><...../>....', 
     '<... id=''someID'' .../>', 
     '<... id=''someID'' .../><my_new_string>'); 

Пожалуйста, обратите внимание, я избежала "символы вокруг "someID".

С уважением.

1

SQL-сервер может работать с XML. Вам не нужно использовать подстроку. Двойники проблема была решена на этой странице: xml.modify

0

Это не ясно, что тип данных ваша строка: xml или (n)varchar? Для xml вы можете использовать различные data type methods; для (n)varcharSTUFF() function вставляет одну строку в другую строку.