Заменить () на поле с разрывами строк в нем? - PullRequest
1 голос
/ 06 июня 2011

Таким образом, у меня есть поле, в котором в основном хранится целый XML-файл на строку, а также разрывы строк, и мне нужно удалить некоторый текст из трехсот строк. Функция replace () не находит оскорбительный текст независимо от того, что я делаю, и все, что я могу найти, выполняя поиск, - это кучка людей, пытающихся самостоятельно удалить разрывы строк. Я не вижу причин, по которым метод replace () просто не будет работать, поэтому я просто как-то неправильно его форматирую. Помощь

Редактировать: Вот пример того, что я имею в виду в общих чертах:

<script>...</script><dependencies>...</dependencies><bunch of other stuff></bunch of other         stuff><labels><label description="Field2" languagecode="1033" /></labels><events><event           name="onchange" application="false" active="true"><script><![field2.DataValue = (some equation);

</script><dependencies /></event></events><a bunch more stuff></a bunch more stuff>

Мне нужно просто удалить все между тегами событий. Так что мой sql-код такой:

replace(fieldname, '<events><event name="onchange" application="false" active="true"><script><![field2.DataValue = (some equation);

</script><dependencies /></event></events>', '')

Я попробовал это так, и я попробовал все это в одной строке, и я попытался использовать char (10) там, где должны быть разрывы строк, и ничего.

Ответы [ 5 ]

1 голос
/ 30 марта 2013

Ответ Натана был близок. Поскольку этот вопрос является первым, что возникло в результате поиска, я хотел добавить решение для моей проблемы.

select replace(field,CHAR(13)+CHAR(10),' ')

Я заменил разрыв строки на пробел, если не было разрыва. Может случиться так, что вы всегда захотите заменить его ничем, и в этом случае следует использовать '' вместо ' '.

Надеюсь, это поможет кому-то еще, и им не нужно нажимать вторую ссылку в результатах поисковой системы.

0 голосов
/ 11 марта 2016

работал у меня на SQL2012-

ОБНОВЛЕНИЕ YourTable SET YourCol = ЗАМЕНИТЬ (YourCol, CHAR (13) + CHAR (10), '')

0 голосов
/ 07 июня 2011

попробуйте два простых теста.

  1. попробуйте заменить строку XML, в которой нет двойных кавычек (или одинарных кавычек), но есть CRLF. Это работает? Если да, вам нужно уйти от кавычек.

  2. попробуйте заменить строку XML, в которой нет CRLF. Это работает? Отлично. Если да, используйте два вложенных replace() по одному только для CRLF, а второй заменяющий символ для рассматриваемой строки.

0 голосов
/ 07 июня 2011

Если ваш столбец является столбцом с типом xml, вы можете использовать метод delete для столбца, чтобы удалить узлы events.См. http://msdn.microsoft.com/en-us/library/ms190254(v=SQL.90).aspx для получения дополнительной информации.

0 голосов
/ 06 июня 2011

Многие люди не помнят, что разрывы строк - это два символа (Char 10 \ n и Char 13 \ r)

заменяют оба, и вы должны быть хорошими.

SELECT 
REPLACE(field , CHR(10)+CHR(13), '' )
FROM Blah..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...