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

Откуда: Москва
Сообщений: 563
Есть таблица в базе у которой одно из полей
[Название продукта] - varchar(150)

Когда делаю SELECT, то вижу

IA?AUE AEON nu?ie aeace? eeoai40a oe/i(Iaaieoiai?neee IE):15
I?INOIEAAOEII I?ia oai? ca?i a neea 7%130a i/no(?ieieee):12
I?INOIEAAOEII I?ia oai? ca?i a neea 7%130a i/no(?ieieee):12
I?INOIEAAOEII I?ia oai? ca?i a neea 7%130a i/no(?ieieee):12


это ошибка кодировки. С другими таблицами такой проблемы нет! Похоже при загрузке данных в таблицу не правильно была проставлена кодировка.
Нужно установить
LOCALE = Russia
CODE PAGE = 1251

Могу я сейчас как нибудь сделать UPDATE TABLE чтобы пересохранить значения в нужной кодировке?
29 июл 19, 09:10    [21936581]     Ответить | Цитировать Сообщить модератору
 Re: Как поменять кодировку в запросе t-sql  [new]
aleks222
Member

Откуда:
Сообщений: 760
1. Есть два варианта:
1.1. У тя странный collation стоит для поля.
https://docs.microsoft.com/en-us/sql/relational-databases/collations/view-collation-information?view=sql-server-2017#TsqlProcedure
SELECT name, collation_name FROM sys.columns WHERE name = ...
Лечится
select [Название продукта]  collate "ну какой там тебе надо, например cyrillic_general_ci_as" from [Есть таблица в базе у которой одно из полей]

1.2. У тя кривые данные загружены в таблицу. Это не лечится. Только ввод правильных заново.
29 июл 19, 12:13    [21936736]     Ответить | Цитировать Сообщить модератору
 Re: Как поменять кодировку в запросе t-sql  [new]
uaggster
Member

Откуда:
Сообщений: 725
aleks222
1.2. У тя кривые данные загружены в таблицу. Это не лечится. Только ввод правильных заново.

Ну почему сразу "не лечится"?
Возможно, там просто бит обрезан.
Или по частотному словарю восстановить можно.
Когда то была такая программа: "Штирлиц". Восстанавливала файлы, испорченные неправильной перекодировкой, и показывала, какая именно перекодировка их угробила.
Собственно взять, посмотреть что сломалось, и перекодировать назад.
Ну, не TSQL, конечно. На C# там написать или что то типа...
29 июл 19, 21:47    [21937263]     Ответить | Цитировать Сообщить модератору
 Re: Как поменять кодировку в запросе t-sql  [new]
uaggster
Member

Откуда:
Сообщений: 725
Или, как вариант, если таблица небольшая, ну, не десятки гигабайт - выгрузит в csv, раскодировать тем же Штирлицем, и залить обратно.
:-)
29 июл 19, 22:07    [21937277]     Ответить | Цитировать Сообщить модератору
 Re: Как поменять кодировку в запросе t-sql  [new]
MaksK
Member

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

SELECT ColumnName collate Cyrillic_General_CI_AS

FROM dbo.TABLENAME
30 июл 19, 08:19    [21937437]     Ответить | Цитировать Сообщить модератору
 Re: Как поменять кодировку в запросе t-sql  [new]
Massa52
Member

Откуда:
Сообщений: 359
uaggster,
Не получится, там уже кастрированные значения. Нечего расскодировать.
30 июл 19, 09:26    [21937460]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить