Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
 SSIS: не работает пакет из джоба  [new]
rsolanov
Member

Откуда:
Сообщений: 882
Здравствуйте.
Помогите пожалуйста решить проблему: есть пакет, который из текстового файла копирует данные в таблицу БД.
При запуске из студии и из Integration Services Catalog/SSISDB пакет работает.
Но если пакет запустить из задания службы SQL Server Agent, то пишет ошибку: "Data conversion failed. The data conversion for column "budget" returned status value 2 and status text "The value could not be converted because of a potential loss of data."."
Тип поля numeric(18,2), он без преобразований сразу идет в поле таблицы такого же типа данных.
9 окт 17, 15:04    [20854835]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: не работает пакет из джоба  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 901
очень странно
по идее НЕ лоджно это зависеть
там надо глянуть под каким юезром запущен агент - но тогда бы ошибка была бы другая

в 1 очередь я бы проверил на том ли самом енвайронменте происходит ошибка

зы ошибка смотрится в
SSISDB.catalog.event_messages
?
9 окт 17, 16:12    [20855085]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: не работает пакет из джоба  [new]
rsolanov
Member

Откуда:
Сообщений: 882
Гулин Федор, я уже почти уверен что причина в региональных настройках у моей учетной записи и управляемой служебной учетной записи, из под которой работает служба SQL Server Agent. Я только не знаю как зайти на сервер из под этой учетной записи и проверить региональные настройки.
P.S. Пакет запускается с верно настроенными настройками окружения (специально проверил) и ошибка из собственной системы журнала ошибок.
9 окт 17, 16:19    [20855106]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: не работает пакет из джоба  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 901
rsolanov
Гулин Федор, я уже почти уверен что причина в региональных настройках у моей учетной записи и управляемой служебной учетной записи, из под которой работает служба SQL Server Agent. Я только не знаю как зайти на сервер из под этой учетной записи и проверить региональные настройки.
P.S. Пакет запускается с верно настроенными настройками окружения (специально проверил) и ошибка из собственной системы журнала ошибок.


наверно это не правильно но я службу агенат стартую под админом

по хорошему надо наверно минимальные права выдавать (или своим аккаунтом)
https://www.mssqltips.com/sqlservertip/2317/running-sql-server-agent-with-a-least-privilege-service-account/


как тетс это оч. быстро проверить будут ли ошибки если агент под своим аккаунтом
9 окт 17, 17:33    [20855402]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: не работает пакет из джоба  [new]
rsolanov
Member

Откуда:
Сообщений: 882
Что в результате оказалось: при настройке региональных параметров сервера в учетной записи из под которой работает служба SQL Server Agent не сохранились и пришлось региональные настройки этой учетной записи изменять прямо в реестре. После этого пакет успешно заработал. Но в пакете было явно выставлено свойство LocaleID как русский. Но при этом я наблюдал ошибку, казалось что это не срабатывает. При дальнейшем изучении стало все ясно: копируемые с другого сервера в рамках проекта перехода на новый сервер региональные настройки были как русские и при этом десятичная запятая была как точка а не запятая и в самих данных текстового файла разделитель это точка. Поэтому русская локализация не позволяла правильно читать этот файл, пока вручную их не изменили. Но думаю надо оценить объем работы изменения всех пакетов где имеет место этот момент чтобы можно было исправить в региональных параметрах в качестве разделителя целой и дробной части с точки на стандартную запятую.
9 окт 17, 17:43    [20855428]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: не работает пакет из джоба  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 31050
Блог
rsolanov,

стандарт как раз точка, забудьте о запятой,
если данные приходят с запятой, вы должны конвертить их в пакете на точку
9 окт 17, 18:49    [20855661]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: не работает пакет из джоба  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 31050
Блог
иначе вы будете ловить все грабли багов локализации
9 окт 17, 18:50    [20855663]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: не работает пакет из джоба  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 901
Критик
rsolanov,

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


читать как строку - потом реплейсить запятую на точку - потом кастить к decimal ?
9 окт 17, 19:08    [20855690]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: не работает пакет из джоба  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 31050
Блог
Если есть трудности с настройкой локали, например, нет прав, то да.
9 окт 17, 19:23    [20855730]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: не работает пакет из джоба  [new]
rsolanov
Member

Откуда:
Сообщений: 882
Критик
rsolanov,

стандарт как раз точка, забудьте о запятой,
если данные приходят с запятой, вы должны конвертить их в пакете на точку
Странно но по умолчанию в русской локализации стоит запятая, проверял на новых компах где только что установили ОС. Мне кажется менять на сервере дефолтные настройки локали - это антипатерн.
10 окт 17, 09:53    [20856655]     Ответить | Цитировать Сообщить модератору
 Re: SSIS: не работает пакет из джоба  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 31050
Блог
rsolanov,

альтернатива - внезапно получить данные, которые в 100 раз больше нужных, потому что разделитель не определился

серверную версию изначально лучше ставить родную, без локализации (если нет неких доп-требований)
10 окт 17, 14:00    [20857549]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить