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

Откуда:
Сообщений: 22
Есть таблица
stor_ID - id склада uniqueidentifier
stor_Name - имя склада nvarchar(max)
Делаю запрос
select stor_ID, stor_Name
from tp_Stores
where stor_del_ID is null
for xml auto
Результат
<tp_Stores stor_ID="55B27394-9FB7-7545-BE65-069A08159D5D" stor_Name="��Бар" />
<tp_Stores stor_ID="E742B492-7320-6941-B33C-0FCECD3F59EB" stor_Name="��Кухня" />
Цель получить результат
stor_ID stor_Name
55B27394-9FB7-7545-BE65-069A08159D5D Бар
E742B492-7320-6941-B33C-0FCECD3F59EB Кухня

Пробывал openxml , читал форумы не разобрался
В первый раз столкнулся с html форматом
Помогите пожалуйста разобраться
p.s. Символы форум не понимает прикрепляю скрином

К сообщению приложен файл. Размер - 32Kb
30 авг 12, 19:52    [13091493]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
serg.krd
Помогите пожалуйста разобраться
Вопрос то какой?

"Как прочитать столбец формата html" - в каком смысле? Как глазами с экрана прочитать текст?
30 авг 12, 20:33    [13091597]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
serg.krd
Member

Откуда:
Сообщений: 22
alexeyvg,
Через SELECT
Цель получить результат
stor_ID stor_Name
55B27394-9FB7-7545-BE65-069A08159D5D Бар
E742B492-7320-6941-B33C-0FCECD3F59EB Кухня
30 авг 12, 20:44    [13091622]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
invm
Member

Откуда: Москва
Сообщений: 9413
serg.krd
alexeyvg,
Через SELECT
Цель получить результат
stor_ID stor_Name
55B27394-9FB7-7545-BE65-069A08159D5D Бар
E742B492-7320-6941-B33C-0FCECD3F59EB Кухня
Тогда зачем используете for xml?
30 авг 12, 20:59    [13091670]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
serg.krd
Member

Откуда:
Сообщений: 22
invm,
Если сделать запрос
select stor_ID, stor_Name
from tp_Stores
where stor_del_ID is null
то поле stor_Name у меня пустое(Management studio отображает как пустое)
если выгрузить через bcp то присутствуют непечатываемые символы
мне же нужно получить названия складов без символов
30 авг 12, 21:09    [13091678]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
serg.krd
Если сделать запрос
select stor_ID, stor_Name
from tp_Stores
where stor_del_ID is null
то поле stor_Name у меня пустое(Management studio отображает как пустое)
если выгрузить через bcp то присутствуют непечатываемые символы
мне же нужно получить названия складов без символов
То есть проблема в том, что в таблице tp_Stores в поле stor_Name есть неправильные символы?

Может, нужно обратиться к админам/разработчикам БД, что бы они поправили данные в stor_Name?

Или можно удалить неправильные символы при выводе командой REPLACE

Вообще этот вопрос с этими таблицами уже задавался не так давно. Это что, такое тестовое задание, или реальное задание, за которое которое предыдущего спрашивающего уже уволили? :-)
30 авг 12, 21:23    [13091704]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
invm
Member

Откуда: Москва
Сообщений: 9413
serg.krd,

Вот, допилите под свои нужды:
declare @t table (stor_ID uniqueidentifier, stor_Name nvarchar(30));

insert into @t
values
 (newid(), N'##Бар'),
 (newid(), N'@@@@Кухня');
 
select
 stor_ID,
 stuff(stor_Name, 1, patindex(N'%[a-zA-Zа-яА-Я]%', stor_Name) - 1, '') as stor_Name
from
 @t;
30 авг 12, 21:39    [13091731]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
serg.krd
Member

Откуда:
Сообщений: 22
alexeyvg,
Разработчикам глубоко пох на наши проблемы (уверен в этом так как работал у их дилера)
Была моя тема "Шайтан(пустой столбец в запросе)"
Для меня это просто "шабашка" и новый опыт
Вопрос тогда отложился на время и появились другие задачи
На счет REPLACE увы не помогло с полем stor_ID(пробывал для эксперемента и понимания) без проблем
а с stor_Name не срабатывает т.е. не происходит замена
30 авг 12, 21:40    [13091735]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
serg.krd
Member

Откуда:
Сообщений: 22
invm,
ОГРОМНОЕ спасибо за помощь
дальше сам разберусь
30 авг 12, 21:43    [13091743]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
serg.krd
На счет REPLACE увы не помогло с полем stor_ID(пробывал для эксперемента и понимания) без проблем
а с stor_Name не срабатывает т.е. не происходит замена
Значит, у вас ошибка, раз не получается.

Посмотрите, там у всех полей такие 4 символа? Тогда можно просто отрезать при выводе первые 4 байта. Ну или отдать шабашку кому то другому, если у вас после той темы не получилось сделать.
30 авг 12, 21:45    [13091746]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
serg.krd
Member

Откуда:
Сообщений: 22
invm
serg.krd,

Вот, допилите под свои нужды:
declare @t table (stor_ID uniqueidentifier, stor_Name nvarchar(30));

insert into @t
values
 (newid(), N'##Бар'),
 (newid(), N'@@@@Кухня');
 
select
 stor_ID,
 stuff(stor_Name, 1, patindex(N'%[a-zA-Zа-яА-Я]%', stor_Name) - 1, '') as stor_Name
from
 @t;

Помогло просто
select
stor_ID,
stuff(stor_Name, 1, patindex(N'%[a-zA-Zа-яА-Я]%', stor_Name) - 1, '') as stor_Name
from
tp_Stores
where stor_del_ID is null
результат
stor_ID stor_Name
55B27394-9FB7-7545-BE65-069A08159D5D Бар
E742B492-7320-6941-B33C-0FCECD3F59EB Кухня
то что мне и нужно
Еще раз спасибо за помощь
30 авг 12, 21:55    [13091765]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
serg.krd
Member

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

К сожелению или к счастью у нас в городе нет спецов, которые этим занимается.
Только я понемногу.
Учусь по книгам и методом тыка.
Суть работы выгрузить данные через bcp в текстовик и потом загрузить в 1с.
Скрипт был сделан мною года 2 назад и работает в нескольких местах.
После обновления БД все поля "_name" изменились.
Слава богу помогли.
По сути работа готова
31 авг 12, 10:08    [13093019]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
serg.krd
Суть работы выгрузить данные через bcp в текстовик и потом загрузить в 1с.
Скрипт был сделан мною года 2 назад и работает в нескольких местах.
После обновления БД все поля "_name" изменились.
Слава богу помогли.
По сути работа готова
Ну как работа готова?

У вас база порушилась, а вы решили на это забить, вставив костыль. Просто нарываете где то скрипты и вставляете по принципу заработает-не заработает.

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

И предлагаемый скрипт приведёт к потерям данных, если допустим в середине строчки будет запятая, пробел, тире, точка.
31 авг 12, 10:25    [13093115]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
invm
Member

Откуда: Москва
Сообщений: 9413
alexeyvg
И предлагаемый скрипт приведёт к потерям данных, если допустим в середине строчки будет запятая, пробел, тире, точка.
Это почему?
Ну и считать данные поврежденными, не зная всех тонкостей функционирования клиентского приложения, ИМХО преждевременно.
31 авг 12, 11:00    [13093316]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
invm
alexeyvg
И предлагаемый скрипт приведёт к потерям данных, если допустим в середине строчки будет запятая, пробел, тире, точка.
Это почему?
Ну как, в шаблон N'%[a-zA-Zа-яА-Я]%' не входит, например, пробел? Вот скрипт и будет отсекать строку начиная с пробела.
invm
Ну и считать данные поврежденными, не зная всех тонкостей функционирования клиентского приложения, ИМХО преждевременно.
Я тоже долго так думал, но вроде выше ТС сказал, что символы-барабашки появились случайно после копирования BCP :-)
31 авг 12, 11:35    [13093562]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
invm
Member

Откуда: Москва
Сообщений: 9413
alexeyvg
Ну как, в шаблон N'%[a-zA-Zа-яА-Я]%' не входит, например, пробел? Вот скрипт и будет отсекать строку начиная с пробела.
Вы что-то путаете. Убираются только "не буквы" с начала строки.
alexeyvg
Я тоже долго так думал, но вроде выше ТС сказал, что символы-барабашки появились случайно после копирования BCP :-)
Мне помнится, ТС утверждал, что этот эффект у него появился после обновления ПО. Возможно и ошибаюсь.
31 авг 12, 12:47    [13094168]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
invm
alexeyvg
Ну как, в шаблон N'%[a-zA-Zа-яА-Я]%' не входит, например, пробел? Вот скрипт и будет отсекать строку начиная с пробела.
Вы что-то путаете. Убираются только "не буквы" с начала строки.
А, точно, невнимательно посмотрел - думал, ищется последний небуквенный символ.
31 авг 12, 13:32    [13094648]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
serg.krd
Member

Откуда:
Сообщений: 22
alexeyvg,
Может Вы не до конца поняли но я просто делаю select инфы в нужном мне виде во временные таблицы а дальше делаю с ними что хочу
О потери БД не может быть и речи
31 авг 12, 14:53    [13095406]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
serg.krd
Member

Откуда:
Сообщений: 22
invm
alexeyvg
Ну как, в шаблон N'%[a-zA-Zа-яА-Я]%' не входит, например, пробел? Вот скрипт и будет отсекать строку начиная с пробела.
Вы что-то путаете. Убираются только "не буквы" с начала строки.
alexeyvg
Я тоже долго так думал, но вроде выше ТС сказал, что символы-барабашки появились случайно после копирования BCP :-)
Мне помнится, ТС утверждал, что этот эффект у него появился после обновления ПО. Возможно и ошибаюсь.

Да после обновления появились эти символы
Это не глюк
База работает без проблем достаточно долго
Это разработчики алгоритмы работы изменили
Кстати для перехода на новую версию БД пришлось поставить SQL 2008 так как на 2005 не потдерживается
31 авг 12, 14:57    [13095460]     Ответить | Цитировать Сообщить модератору
 Re: Как прочитать столбец формата html  [new]
serg.krd
Member

Откуда:
Сообщений: 22
serg.krd,
Понял о чем Вы
Это не глюк базы символы
Это особенность работы программы
31 авг 12, 14:59    [13095472]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить