Хорошо, поэтому я программно генерирую пакеты .dtsx с использованием кода Visual Basic.
Пакет успешно собран, но есть небольшая проблема.
По какой-то причине диспетчер соединений не получает правильный тип данных столбца даты во всех компонентах назначения OLE DB, которые используют эту же таблицу. Вместо DT_DBDATE он интерпретируется как DT_WSTR .
Вот часть схемы базы данных :
Вот неверно интерпретированный тип данных столбца даты в одном из компонентов Назначения OLE DB:
А теперь вот самое смешное:
Если я удаляю менеджер соединений вручную (в Инструментах данных), добавляю его снова и перепривязываю компоненты к новому менеджеру, тип данных для даты выводится правильно.
Доказательство:
Это происходит только для столбца с типом данных date, остальные (datetime, int и т. Д.) Обрабатываются правильно.
При запуске пакета служб SSIS я получаю следующую ошибку:
[SSIS.Pipeline] Error: "REJECTED_DATA1" failed validation and returned validation status "VS_NEEDSNEWMETADATA".
Теперь я прочитал кучу сообщений на форуме о том, как решить эту проблему в Data Tools (удалите и снова добавьте компонент), но я собираю пакет программно, и я не должен редактировать его. Файл dtsx вручную после его создания.
В чем может быть причина этого?
Что можно сделать в коде, чтобы решить эту проблему?