SSIS - динамические отображения столбца

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

Я хочу знать, существует ли способ выйти из этого столбца отображения в целевом компоненте, который будет таблицей OLEDB SQL в моем случае. Поскольку эти отображения отличаются для каждого файла. Там путь состоит в том, чтобы сделать это динамично?

5
задан bragboy 7 July 2010 в 07:59
поделиться

1 ответ

Хотя вы можете добавить задачу сценария внутри цикла для изменения отображений, это не самое простое решение, поскольку вам придется явно создавать каждое отображение в коде. Более простым решением будет замена листов excel на разделенные текстовые файлы и импорт их внутри цикла с помощью задачи Bulk Insert Task. Вам не придется предоставлять информацию о сопоставлении, если порядок столбцов одинаков в обоих файлах и таблицах.

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

Несколько более простой способ - использовать только одну задачу сценария, которая использует метаданные для настройки объекта SqlBulkCopy. Вы теряете гибкость полной задачи Data Flow, но если все, что вам нужно, это загрузить несколько файлов в temp talbes, то этого вполне достаточно. К тому же, настроить объект SqlBulkCopy гораздо проще, чем задачу Data Flow.

5
ответ дан 14 December 2019 в 18:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: