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

Откуда: Мытищи
Сообщений: 819
Есть csv файл в кодировке utf-8. С помощью конструкции
SELECT * FROM OPENROWSET(
   BULK 'c:\1\1.csv',FORMATFILE='C:\1\Config\1.xml',FIRSTROW=2) AS x 

читаю из него данные. Но русские буквы не читаемые. Какие есть способы сделать их читаемыми?
11 июн 14, 14:39    [16154815]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET BULK и utf-8  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Не читаемые где?
В SSMS они и не обязаны читаться.
11 июн 14, 14:50    [16154924]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET BULK и utf-8  [new]
Mit
Member

Откуда: Мытищи
Сообщений: 819
Наверное я не совсем правильно задал вопрос.
Потом результат данной выборки преобразуется в xml
Select * from (
SELECT * FROM OPENROWSET(
   BULK 'c:\1\1.csv',FORMATFILE=C:\1\Config\1.xml',FIRSTROW=2) AS x) RECORD for xml auto, elements


Каким образом сделать так чтобы русские буквы были бы в кодировке 1251?
11 июн 14, 15:16    [16155209]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET BULK и utf-8  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
в какой программе вы смотрите этот xml , там и делайте преобразование
11 июн 14, 15:20    [16155234]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET BULK и utf-8  [new]
Mit
Member

Откуда: Мытищи
Сообщений: 819
Я хочу чтобы данные из csv файла с кодировкой utf8 сохранить в таблице или в xml с кодировкой win 1251.
11 июн 14, 15:30    [16155351]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET BULK и utf-8  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
в таблице в полях nvarchar() и так запишется в UNICODE
на клиенте уже сами делайте в той кодировке как вам нужно
11 июн 14, 15:32    [16155374]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET BULK и utf-8  [new]
Mit
Member

Откуда: Мытищи
Сообщений: 819
Точнее даже так. В хранимой процедуре в MS SQL указанным выше запросом формирую xml и сохраняю его в таблице. Как сделать так, чтобы в сформированном xml русские буквы были в кодировке mswin1251?
11 июн 14, 15:32    [16155383]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET BULK и utf-8  [new]
Mit
Member

Откуда: Мытищи
Сообщений: 819
Я не хочу unicode. Я хочу чтобы сразу была кодировка 1251.
11 июн 14, 15:33    [16155389]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET BULK и utf-8  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
сервер за это не отвечает, он лишь сохраняет то , что вы ему передаёте
11 июн 14, 15:34    [16155402]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET BULK и utf-8  [new]
Mit
Member

Откуда: Мытищи
Сообщений: 819
То есть правильно понял, что запросом
Select * from (
SELECT * FROM OPENROWSET(
   BULK 'c:\1\1.csv',FORMATFILE=C:\1\Config\1.xml',FIRSTROW=2) AS x) RECORD for xml auto, elements

нельзя получить готовый xml в нужной мне кодировке?
11 июн 14, 15:36    [16155423]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET BULK и utf-8  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
нет, будет UTF-16
11 июн 14, 15:37    [16155434]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET BULK и utf-8  [new]
Mit
Member

Откуда: Мытищи
Сообщений: 819
Тогда другой вопрос: я сохраняю полученный xml в поле с типом xml в таблице. Можно ли как то xml из таблицы из кодировки utf-16 переделать в utf-8?
11 июн 14, 15:42    [16155472]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET BULK и utf-8  [new]
Mit
Member

Откуда: Мытищи
Сообщений: 819
туплю из utf-16 в win1251?
11 июн 14, 15:43    [16155487]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET BULK и utf-8  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Задачу перекодировки и импорта можно решить пакетом SSIS.
11 июн 14, 15:47    [16155521]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET BULK и utf-8  [new]
Mit
Member

Откуда: Мытищи
Сообщений: 819
Каким образом в пакете SSIS можно переконвертировать файл в нужную мне кодировку?
11 июн 14, 15:51    [16155559]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET BULK и utf-8  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Не файл, а значения полей. Кроме того, ничто не мешает написать для пакета написать скрипт на .net языке для конвертации всего файла.
11 июн 14, 15:55    [16155593]     Ответить | Цитировать Сообщить модератору
 Re: OPENROWSET BULK и utf-8  [new]
Mit
Member

Откуда: Мытищи
Сообщений: 819
Ясно, спасибо.
11 июн 14, 15:56    [16155605]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить