Пакет SSIS 2012 для импорта данных Excel в таблицу базы данных

Я хочу создать пакет SSIS, который будет загружать данные из файла excel в таблицу базы данных.

Я уже сделал пакет, который выполняет эту задачу, но таблицу необходимо создавать заново каждый раз, когда загружаются данные Excel, потому что данные Excel и определение их столбца меняются каждый месяц. Если таблица не создается при каждом выполнении, будут ошибки, и моя задача не будет завершена, потому что данные Excel будут загружены с неправильным определением столбца.

Есть ли способ динамически удалять и создавать таблицу каждый раз?


person shishir_bindu    schedule 23.12.2014    source источник


Ответы (1)


SSIS генерирует много метаданных за кулисами, которые описывают ваши исходные и целевые поля и сопоставления. Если он чувствует, что не обращается к тому же источнику/назначению данных, он часто выдает ошибку проверки и отказывается запускаться.

В некоторой степени вы можете смягчить это, установив для DelayValidation значение True в свойствах диспетчера соединений. Однако это вряд ли поможет в вашем случае, поскольку ваша спецификация данных действительно меняется.

Еще один способ обойти жесткий контроль над форматом данных — написать собственную пользовательскую логику источника/преобразования/назначения в задачах сценария. Вы можете написать задачу сценария, чтобы прочитать формат входящего файла Excel, сохранить эти данные в переменных и передать их в задачу «Выполнение SQL» для создания таблицы. Затем вы можете написать задачу сценария для динамического сопоставления ваших данных с некоторыми общими промежуточными столбцами, которые существуют в вашем пакете. Наконец, вы можете написать назначение задачи сценария для загрузки этих данных во вновь созданную таблицу.

По сути, вы отказываетесь от всех готовых функций SSIS и пишете собственное решение для интеграции с нуля, но, похоже, у вас нет особого выбора.

person James Rosser    schedule 23.12.2014