Диспетчер соединений служб SSIS хранит какие-то метаданные - PullRequest
0 голосов
/ 10 сентября 2018

Хорошо, поэтому я программно генерирую пакеты .dtsx с использованием кода Visual Basic.

Пакет успешно собран, но есть небольшая проблема.

По какой-то причине диспетчер соединений не получает правильный тип данных столбца даты во всех компонентах назначения OLE DB, которые используют эту же таблицу. Вместо DT_DBDATE он интерпретируется как DT_WSTR .

Вот часть схемы базы данных :

enter image description here

Вот неверно интерпретированный тип данных столбца даты в одном из компонентов Назначения OLE DB:

enter image description here

А теперь вот самое смешное: Если я удаляю менеджер соединений вручную (в Инструментах данных), добавляю его снова и перепривязываю компоненты к новому менеджеру, тип данных для даты выводится правильно.

Доказательство: enter image description here

Это происходит только для столбца с типом данных date, остальные (datetime, int и т. Д.) Обрабатываются правильно.

При запуске пакета служб SSIS я получаю следующую ошибку:

[SSIS.Pipeline] Error: "REJECTED_DATA1" failed validation and returned validation status "VS_NEEDSNEWMETADATA".

Теперь я прочитал кучу сообщений на форуме о том, как решить эту проблему в Data Tools (удалите и снова добавьте компонент), но я собираю пакет программно, и я не должен редактировать его. Файл dtsx вручную после его создания.

В чем может быть причина этого?

Что можно сделать в коде, чтобы решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...