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

Откуда:
Сообщений: 77
Нужно из View сохранить инфу в текстовый файл. Перед сохранением нужно преобразовать данные из кодировки 1251 в 866. Для этого использую Data Conversion в Data Flow Task.
Ошибка:
Error at Data Flow Task [Data Conversion [381]]: Conversion from "DT_STR" with code page 1251 to "DT_STR" with code page 866 is not supported.
Как решить проблему средствами SQL SERVER 05 или Integration Services?
Готовить файл в 1251 а потом ручками с помощью сторонних утилит переводить в 866 не хотелось бы.
5 май 06, 11:00    [2633273]     Ответить | Цитировать Сообщить модератору
 Re: Изменение CodePage в Data Conversion (SSIS)  [new]
AlexFormNSK
Member

Откуда: Novosibirsk
Сообщений: 146
Топик поднят давно. Никто так и не нашел решения? У меня обратная проблема. Нужно из текстового 866 залить в базу 1251
23 авг 06, 14:21    [3043294]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Изменение CodePage в Data Conversion (SSIS)  [new]
Rodion G
Member

Откуда: Москва
Сообщений: 52
AlexFormNSK, ошибка связана с тем , что IS некорректно определяет метаданные выхода ошибок компонента FlatFileSource – ставит 866 кодировку , хотя на самом деле 1251 (во всяком случае у меня так). При этом компоненты преобразования данных с этой кодировкой не работают.
В ScriptTask явно приводим к 1251: (SQL 2008r2)

using System.Text;
…
public class ScriptMain : UserComponent
{
…
    public override void Вход0_ProcessInputRow(Вход0Buffer Row)
    {
        byte[] inputStream = Row.ВходнойСтолбец.GetBlobData(0, Convert.ToInt32(Row.ВходнойСтолбец.Length));
        Encoding win = Encoding.GetEncoding(1251);
        Row.ВыходнойСтолбец = win.GetString(inputStream);
    }

}
6 фев 13, 16:13    [13885695]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить