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

Откуда:
Сообщений: 24
Всем привет!
В DataFlow SSIS-пакета есть Excel Source, из которого выходят в текстовом представлении
столбец с датами и столбец с decimal. Даты могут тянуться как к примеру "16.04.2005" так и "40238",
а числа как "7.5" так и "3.5E+10". В скрипт компоненты делаю такие преобразования:

Для дат:

Try
'проверяем на числовое представление
Row.ПОЛЕДАТЫ = FormatDateTime(DateTime.FromOADate(Row.ПОЛЕДАТЫ), 2)
Catch ex As Exception
Try
'проверяем на представление в виде даты
Row.ПОЛЕДАТЫ = FormatDateTime(Row.ПОЛЕДАТЫ, 2)
Catch
'записываем минимально возможную дату
Row.ПОЛЕДАТЫ = FormatDateTime(System.DateTime.MinValue, 2)
End Try
End Try

для decimal-ов:

Try
' если число с экспонентой, парсим его к десятичному виду
Row.contractsum = CStr(Decimal.Parse(Row.contractsum, Globalization.NumberStyles.Float))
Catch ex As Exception
' иначе записываем минимальное значение
Row.contractsum_IsNull = CStr(System.Decimal.MinValue)
End Try


Проблема вот в чем: из среды Visual Studio все отрабатывает четко. Но стоит запустить
пакет из агента - с датами происходит проблемы (меняются местами день с месяцем), а числа заходят
только те, в которых до экспоненты - нет десятичной части. (те. 4.0E+10 - зайдет, а 3.5E+10 - нет)

SQL Server 2008 R2, русская локаль, настройки системы тоже русские, формат даты системы "ddMMyyyy",
разделитель дробной части - точка.

Почему VS и агент работают по-разному. Прошу помощи!
12 июл 11, 15:43    [10962336]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, SQL agent, DateTime и Decimal  [new]
mr.Dream
Member

Откуда:
Сообщений: 24
опечатка по тексту:

' иначе записываем минимальное значение
Row.contractsum = CStr(System.Decimal.MinValue)
12 июл 11, 15:46    [10962375]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, SQL agent, DateTime и Decimal  [new]
Glory
Member

Откуда:
Сообщений: 104751
mr.Dream

Почему VS и агент работают по-разному. Прошу помощи!

Наверное потому, что у вас и у агента как раз разные "русская локаль, настройки системы тоже русские, формат даты системы "ddMMyyyy","
12 июл 11, 15:49    [10962416]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, SQL agent, DateTime и Decimal  [new]
mr.Dream
Member

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

Я это проверил в первую очередь: Language у сервера - 1049, региональные параметры у операционки: Русский, dd.MM.yy
12 июл 11, 15:54    [10962471]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, SQL agent, DateTime и Decimal  [new]
mr.Dream
Member

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

Я это проверил в первую очередь: Language у сервера - 1049, региональные параметры у операционки: Русский, dd.MM.yy
12 июл 11, 15:55    [10962488]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, SQL agent, DateTime и Decimal  [new]
Glory
Member

Откуда:
Сообщений: 104751
mr.Dream
Glory,

Я это проверил в первую очередь: Language у сервера - 1049, региональные параметры у операционки: Русский, dd.MM.yy

У какого "сервера" вы проверили ?
Агент работает под своей учетной записью со своими настройками
12 июл 11, 15:59    [10962521]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, SQL agent, DateTime и Decimal  [new]
mr.Dream
Member

Откуда:
Сообщений: 24
Glory
mr.Dream
Glory,

Я это проверил в первую очередь: Language у сервера - 1049, региональные параметры у операционки: Русский, dd.MM.yy

У какого "сервера" вы проверили ?
Агент работает под своей учетной записью со своими настройками


Не сочтите за труд, подскажите где настраивается язык у агента
12 июл 11, 18:17    [10963708]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, SQL agent, DateTime и Decimal  [new]
mr.Dream
Member

Откуда:
Сообщений: 24
Все, вопрос снят, разобрался. Glory благодарю!
13 июл 11, 14:56    [10967818]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, SQL agent, DateTime и Decimal  [new]
vicktor
Member

Откуда:
Сообщений: 62
Здравствуйте. такая же проблема. Помогите решить.
26 июн 12, 14:17    [12776618]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, SQL agent, DateTime и Decimal  [new]
vicktor
Member

Откуда:
Сообщений: 62
vicktor
Здравствуйте. такая же проблема. Помогите решить.


Уточню,
SQL2008. Стоит вопрос импорта данных из файла с разделителями. Данные вещественного типа имеют разделитель точка. А в таблицу должна записаться запятая.
У NT SERVICE\SQLSERVERAGENT стоит English.
При запуске пакета сообщение

Ошибка 0xc02020a1: Задача потока данных 1: Ошибка преобразования данных. При преобразовании данных для столбца "Столбец 3" возращено значение состояния 2 и текст состояния "Невозможно преобразовать значение из-за возможной потери данных.".
(Мастер импорта и экспорта SQL Server)


Подскажите. Спасибо.
26 июн 12, 15:36    [12777324]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, SQL agent, DateTime и Decimal  [new]
vicktor
Member

Откуда:
Сообщений: 62
vicktor
Здравствуйте. такая же проблема. Помогите решить.

решил. В мастере импорта указал языковой стандарт - Английский США, и кодировка - кириллица.
27 июн 12, 10:48    [12780751]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить