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

Откуда:
Сообщений: 7
Добрый день,
очень прошу совета!

Есть текстовое поле в таблице: [dbo].[SMS_RASSYLKA].[full_in_one] [varchar](1000)
В тексте, хранящемся в этом поле могут встречаться вводы (в смысле char(13)). Как можно их убрать, сохранив весь остальной текст?

Или может быть проблему можно решить на следующем этапе?
Значения этого поля далее передаются в эксель:
DECLARE @Sql VARCHAR(4000),
@result int
SET @Sql='sqlcmd -S MEDIALOG2\MEDIALOG2 -E -h -1 -Q "SELECT full_in_one FROM <servername>.dbo.SMS_RASSYLKA" -o c:\<foldername>\<filename>.xls -W -s "' + CHAR(9)+'"'

EXEC @result = master..xp_cmdshell @Sql, no_output


и если в поле присутствуют вводы, структура экселя "плывет", а нужно, чтобы одна строка таблицы получалась одной строкой в экселе.
7 окт 13, 10:56    [14932513]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в поле и выгрузка в файл  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20607
MS SQL и MySQL - это две ба-а-альшие разницы...
7 окт 13, 11:16    [14932687]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в поле и выгрузка в файл  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20607
А ответ на сам вопрос зависит от того, насколько значимы эти chr(13). Если нафиг не нужны - удалить прямо в таблице тривиальным Replace. Если они значимы - убирать из в экспортирующем запросе тем же Replace.
7 окт 13, 11:19    [14932702]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в поле и выгрузка в файл  [new]
mous.se
Member

Откуда:
Сообщений: 7
Нужно, чтобы это происходило автоматически. Эксель формируется джобом по расписанию, и весь смысл конструкции в том, чтобы не было пользовательского участия.

А первым сообщением Вы имеете в виду, что я не в ту ветку тему поместила?
7 окт 13, 11:22    [14932723]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в поле и выгрузка в файл  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20607
mous.se
первым сообщением Вы имеете в виду, что я не в ту ветку тему поместила?
Да... а можно было понять как-то ещё?

mous.se
Нужно, чтобы это происходило автоматически. Эксель формируется джобом по расписанию, и весь смысл конструкции в том, чтобы не было пользовательского участия.
Ну так поменяйте текст запроса-то...

Модератор: Тема перенесена из форума "MySQL".


Сообщение было отредактировано: 7 окт 13, 12:06
7 окт 13, 11:54    [14932908]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в поле и выгрузка в файл  [new]
mous.se
Member

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

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

И как поменять текст запроса? Я так понимаю, что должна написать некий update к моей таблице, который модифицирует поле и уберет из него лишние символы, но не знаю как, собственно, поэтому я тут...
7 окт 13, 12:08    [14933050]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в поле и выгрузка в файл  [new]
mous.se
Member

Откуда:
Сообщений: 7
Вижу, тема перемещена, спасибо!
7 окт 13, 12:08    [14933061]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в поле и выгрузка в файл  [new]
Glory
Member

Откуда:
Сообщений: 104760
mous.se
И как поменять текст запроса?

Руками

mous.se
Я так понимаю, что должна написать некий update к моей таблице, который модифицирует поле и уберет из него лишние символы, но не знаю как, собственно, поэтому я тут...

Вам надо написать SELECT
7 окт 13, 12:10    [14933073]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в поле и выгрузка в файл  [new]
Гость333
Member

Откуда:
Сообщений: 3683
mous.se,

SET @Sql='sqlcmd  ... "SELECT REPLACE(full_in_one, CHAR(13), '''') FROM ... '
7 окт 13, 12:14    [14933112]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в поле и выгрузка в файл  [new]
mous.se
Member

Откуда:
Сообщений: 7
Гость333, спасибо большое! В итоге сделала не так, но Вы навели меня на верное направление! Спасибо!
7 окт 13, 12:44    [14933268]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в поле и выгрузка в файл  [new]
mous.se
Member

Откуда:
Сообщений: 7
Радовалась я недолго.
До изменений результатом запроса
DECLARE @Sql VARCHAR(4000),
@result int
SET @Sql='sqlcmd -S <servername> -E -h -1 -Q "SELECT full_in_one FROM <servername>.dbo.SMS_RASSYLKA" -o c:\<foldername>\<filename>.xls -W -s "' + CHAR(9)+'"'

EXEC @result = master..xp_cmdshell @Sql, no_output

была таблица в экселе вида
столбец 1 столбец2 столбец3
значение 1 значение2 значение 3.1
значение 3.2
значение 3.3

разделение по столбцам шло по char(9), который в поле full_in_one также присутствует; и часть после последнего табулятора разбивалась построчно в местах нахождения char(13).
Далее запрос изменен по совету Гость333
DECLARE @Sql VARCHAR(4000),
@result int
SET @Sql='sqlcmd -S <servername> -E -h -1 -Q "SELECT (REPLACE (full_in_one, char(13), '';'')) FROM <servername>.dbo.SMS_RASSYLKA" -o c:\<foldername>\<filename>.xls -W -s "' + CHAR(9)+'"'

EXEC @result = master..xp_cmdshell @Sql, no_output

только я хотела заменить вводы на точку с запятой.
Результатом все равно получается эксель с разбивкой на строки, только с точкой с запятой на местах...
столбец 1 столбец2 столбец3
значение 1 значение2 значение 3.1;
значение 3.2;
значение 3.3

А нужно получить таблицу
столбец 1 столбец2 столбец3
значение 1 значение2 значение 3.1; значение 3.2; значение 3.3

Извините за тупизм! Но это не моя предметная область, а разобраться нужно.
Спасибо!
7 окт 13, 14:20    [14933919]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в поле и выгрузка в файл  [new]
mous.se
Member

Откуда:
Сообщений: 7
Прошу меня извинить.
Поле, с которым я работаю, заполняется пользователями через специализированный софт. И выяснила, что при нажатии пользователем "Enter" в поле прописывается char(13) и char(10) вместе, и, заменяя их оба, все получилось.
Всем спасибо!
7 окт 13, 14:58    [14934243]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить