Игнорирование столбца из файла Excel при импорте в SQL Server - PullRequest
2 голосов
/ 06 мая 2019

У меня есть несколько файлов Excel, которые имеют одинаковый формат.Мне нужно импортировать их в SQL Server.

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

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

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

Мне нужно создать пакет служб SSIS, который полностью игнорирует два столбца, не удаляя столбцы из Excel.

Ответы [ 4 ]

1 голос
/ 06 мая 2019

Если вы просто создаете пакет служб SSIS в SSDT , можно запросить файл Excel, чтобы получить только необходимые столбцы.В пакете создайте диспетчер соединений Excel, используя файл Excel.Затем в поток управления пакета добавьте задачу потока данных, в которой есть компонент источника Excel.В этом источнике измените режим доступа к данным на команду SQL, и файл можно будет запросить аналогично SQL.В следующем примере TabName - это имя вкладки Excel, содержащей данные, которые будут возвращены.Если имена вкладок или столбцов содержат пробелы, их необходимо заключить в квадратные скобки, т. Е. TabName будет [Tab Name].enter image description here

1 голос
/ 06 мая 2019

Мастер импорта / экспорта

Поскольку вы упомянули в комментариях, что используете мастер импорта / экспорта SQL Server.Вы можете решить, что если у вас есть фиксированные столбцы (диапазон), которые вы хотите импортировать (например, первые 10 столбцов).

В мастере импорта / экспорта после выбора параметров назначения вас спросят, хотите ли выдля чтения из таблиц или запросов:

enter image description here

Выберите опцию запроса, затем используйте простой запрос выбора и укажите диапазон столбцов после имени листа.Например:

SELECT * FROM [Sheet1$A:C]

Приведенный выше запрос будет читать первые 3 столбца в Sheet1, поскольку A: C представляет диапазон между первым столбцом A и третьим столбцом C.

enter image description here

Теперь вы можете проверить столбцы в диалоговом окне Редактировать сопоставления :

enter image description here


SSIS

Вы можете использовать ту же логику в пакете служб SSIS, просто написав ту же команду SQL в источнике Excel после изменения режима доступа на команду SQL.

1 голос
/ 06 мая 2019

Вы можете указать, какие столбцы нужно игнорировать, в диалоговом окне «Редактировать сопоставления».

Я добавил изображение для вашей справки:

enter image description here

0 голосов
/ 09 мая 2019

Решение простое.Мне нужно было написать запрос, который исключит столбцы.Поэтому вместо того, чтобы выбирать «Копировать данные из одной или нескольких таблиц», вы выбираете «написать запрос» и исключаете ненужные столбцы.Этот работал 100%

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