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

Откуда: Москва
Сообщений: 10
Добрый день!
Совершенно из ряда вон выходящий случай, вынужден обратиться за помощью.
Есть SSIS пакет, перегоняющий из sql server 2008 на другой сервер, в 2008-й же. Пакет прошел отладку с dev хоста, который выполнял роль сервера SSIS. Каково же было недоумение, когда при попытке запустить этот же пакет, в этой же конфигурации, но уже на хосте сервера-назначения, SSIS выдает следующую ошибку:
Microsoft (R) SQL Server Execute Package Utility  Version 10.0.2531.0 for 64-bit  Copyright (C) Microsoft Corp 1984-2005. All rights reserved.    Started:  7:19:21 PM  Error: 2013-04-12 19:19:27.38     Code: 0xC020901C     Source: <source name>    Description: There was an error with output column "column name" on output "OLE DB Source Output". The column status returned was: "Text was truncated or one or more characters had no match in the target code page.".  End Error

И так с каждым varchar полем.
<column name> имеет тип varchar(n), одинаковой размерности в источнике и назначении.
Пару раз проскакивала другая ошибка, что то про разные кодировки 1251 и 1252.
Разница все же была замечена, тот, с которого не работает, 64-bit, но замечательно работает, если запустить его с 3-го хоста, на котором 32-bit SSIS (но думаю не в этом соль). Комментария ради, на nvarchar полях такой проблемы не возникает, Collation на обоих бд один и тот же, Cyrillic_General_CI_AS.
Даже нет никаких идей что за конфиг SSIS службы может генерить такие расхождения в результатах.
Встречался ли кто с таким и как с этим бороться?
15 апр 13, 12:18    [14180791]     Ответить | Цитировать Сообщить модератору
 Re: SSIS пакет между sql 2008 одного конфига работает с одного хоста, но не работает с другого  [new]
Proavtor
Member

Откуда: Москва
Сообщений: 10
Не нашел конфига службы SSIS, но решение-хак было найдено такое:
В ветке реестра
HKEY_LOKAL_MACHINE\SYSTEM\Current Control Set\Control\Nls\Code Page
отредактировать следующие ключи
1250=с_1251.nls
1252=с_1251.nls
После этого все работает. Первопричина так и не была найдена, что за настройка сервер влияет на эту ситуацию.
16 апр 13, 15:23    [14187619]     Ответить | Цитировать Сообщить модератору
 Re: SSIS пакет между sql 2008 одного конфига работает с одного хоста, но не работает с другого  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 2995
Proavtor
Разница все же была замечена, тот, с которого не работает, 64-bit, но замечательно работает, если запустить его с 3-го хоста, на котором 32-bit SSIS (но думаю не в этом соль). Комментария ради, на nvarchar полях такой проблемы не возникает, Collation на обоих бд один и тот же, Cyrillic_General_CI_AS.
Даже нет никаких идей что за конфиг SSIS службы может генерить такие расхождения в результатах.
Встречался ли кто с таким и как с этим бороться?


пакеты запускаемые в 32 или 64 разряде запускаются по разному (разными версиями dtexec.exe)
скорее всего у них и разные настройки, которые хранятся в реестре

PS:
вот чуток из БОЛ
Программа выполнения пакетов доступна только в 32-разрядной версии. 
Перед тем как производить развертывание или назначать время выполнения команд на рабочем сервере,
установленном на 64-разрядном компьютере, следует проводить проверку всех команд, создаваемых программой выполнения пакетов,
в 64-разрядном режиме. Для проверки этих команд в 64-разрядном режиме следует использовать
64-разрядную версию программы dtexec

добавлю от себя, или же при запуске указывать, чтобы пакет выполнялся в 32 среде
16 апр 13, 15:36    [14187717]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить