У нас есть преобразование Lookup, которое выполняет поиск по дате. Тип данных столбца ввода - DT_DBDATE, а также соответствующий столбец поиска. Оба являются типами данных DATE в SQL Server 2012. Это пакет SSIS 2012.SSIS Lookup Transform Fails on Date Column
Поиск работает отлично в BIDS (дизайнере). При развертывании и запустить через SSISDB UI или через наш пользовательский sproc, этот поиск неудачно со следующей ошибкой:
Error: Lookup Status Key.Inputs[Lookup Input].Columns[status_dt] and reference column named "status_dt" have incompatible data types.
Мы также видим предупреждение синхронизации вокруг все наше DATE колонн, те эти предупреждения не приводят в отказ.
Сказал ли кто-нибудь еще такое поведение?
ОБНОВЛЕНИЕ: Обходной путь заключается в том, чтобы отнести столбцы к DATETIME (DT_DBTIMESTAMP в SSIS) или изменить базовые столбцы на DATETIME. Оба обойти эту проблему. Оба раздражают.
Я предполагаю, что источником проблемы является поставщик OLE DB. Вероятно, ограниченная или слабоватая поддержка даты только типа данных.
Ваша догадка правильная. Использование OLEDB и простой 'DATE' всегда приведет к предупреждению о том, что вы должны обновлять свои метаданные. Я уже зарегистрировал это в Microsoft Connect несколько лет назад. –
В OLE DB нет встроенной поддержки дат только даты. Значение передается в STR или WSTR. Не указывая поставщика в строке подключения, поведение по умолчанию должно быть проблематичным. – Stuart