0

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

ответ

0

Ну, вам нужно использовать Data Flow Task для перемещения данных из Flat File Source в таблице назначения (OLEDB назначения возможно). Разделяются ли столбцы в вашем файле каким-либо образом? Например, с любым из них: (;), (|) или что-то в этом роде? если это так, вы можете создать FlatFileConnectionManager и установить для разделения столбцов. Если нет, вам может потребоваться использовать параметр FixedWidth для разделения столбцов. Чтобы использовать пункт назначения OLEDB, вам необходимо создать 0EDEED-соединение OLEDB connectionManager, чтобы указать на таблицу в вашей базе данных. Я мог бы помочь вам больше, если бы у меня была больше информации о файлах, которые вы хотите прочитать.

EDIT

Ну вы сказали в самом начале вы работали с 4 файлами и 4 таблицы, так что вы можете создать 4 Flat sourcers Destination с 4 OLEDB назначения Aswell (1 из каждого для каждого плоского файла). Если бы я понял вас правильно, эти 4 файла могут или не могут существовать. Поэтому, если вы знаете имена, которые будут получать файлы, измените свойство пакета DelayValidation на true, а затем создайте соединение с образцом текстового файла. Вы делаете это, чтобы путь к файлу был сохранен. Таблицы, на мой взгляд, должны существовать. Теперь, когда вы сказали:

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

Единственный способ, которым я знаю, что вы можете сделать что-то подобное, чтобы запланировать выполнение пакета в определенное время с SQL Server Agent Работа. Пожалуйста, дайте мне знать, если это было то, что вы искали.

+0

да текстовые файлы разделены. Я хочу создать единый пакет для одновременного загрузки всех этих текстовых разделенных текстовых файлов в разные таблицы, а затем архивировать файлы в папку diff – Jason312

+0

@ Jason312 ok. Как я уже сказал, вам нужно использовать задачу потока данных, а внутри просто перетащите FlatFileSource и установите для нее connectionMannager, сделайте то же самое с OLEDB Destination. Я бы предложил создать таблицу с теми же столбцами, что и один из 4, которые вы хотите вставить. [Вы найдете этот урок очень полезным] (https://katieandemil.academy/create-ssis-package-find-an-example-how-to-create-an-ssis-package-a-simple-one) – Mokz

+0

I Я новичок в ssis, но ваш путь - просто простой вход в файл. Моя цель этого проекта - автоматизировать процесс. Я хочу загрузить все текстовые файлы в каждую существующую таблицу всякий раз, когда в папке есть файлы. Например, текстовый файл в таблицу, текстовый файл B в таблицу B и т. Д. Я попытался использовать foreachloop, но только для одного адресата. Как сделать динамику назначения, а также потому, что некоторые из записей дублируются, как использовать функцию поиска для соединения с этими задачами? – Jason312