У меня есть пакет SSIS, который не будет выходить из строя даже при плохом вводе. В моем случае этот пакет читается из плоского файла и помещает записи в таблицу SQL Server. Довольно просто, ничего особенного здесь не происходит.Пакет SSIS не сбой, даже с плохими входными данными
Плоский файл определяется как оборванный справа, 80 символов в строке, может быть, всего 10 столбцов. Проблема: иногда плоский файл не заполняется до 80 символов, поэтому мы получаем строки переменной длины, а не пробелы, заполняющие остальные. Мы хотим, чтобы пакет был неудачным, когда это произойдет.
В моем компоненте источника исходного файла у меня есть раздел вывода ошибок, настроенный так, что если любой столбец усечен, компонент завершится с ошибкой. Тем не менее по какой-то причине все этапы являются зелеными, когда я запускаю пакет из Visual Studio, хотя ни одна строка не импортируется. Вот результат, который я получаю:
SSIS-пакет «SSIS Package 01.dtsx», начиная с.
Информация: 0x4004300A при импорте данных в таблицу01, DTS.Pipeline: фаза проверки начинается.
Информация: 0x4004300A при импорте данных в таблицу01, DTS.Pipeline: фаза проверки начинается.
Информация: 0x40043006 при импорте данных в таблицу01, DTS.Pipeline: подготовка к стадии выполнения начинается.
Информация: 0x40043007 при импорте данных в таблицу01, DTS.Pipeline: начинается предварительная реализация фазы.
Информация: 0x402090DC при импорте данных в таблицу01, файл с плоским файлом [1]: началась обработка файла «C: \ import_files \ sampledata.dat».
Информация: 0x4004300C при импорте данных в таблицу01, DTS.Pipeline: выполняется этап выполнения.
Предупреждение: 0x8020200F при импорте данных в таблицу01, файл с плоским файлом [1]: в конце файла есть частичная строка.
Информация: 0x402090DE при импорте данных в Table01, Flat File Source [1]: Общее количество строк данных, обрабатываемых в файле "C: \ import_files \ sampledata.dat" 0.
Информация: 0x402090DF на Импорт данных в таблицу01, назначение OLE DB [5467]: Завершена окончательная фиксация для ввода данных.
Информация: 0x402090E0 при импорте данных в таблицу01, назначение OLE DB [5467]: окончательная фиксация для вставки данных завершена.
Информация: 0x40043008 при импорте данных в таблицу01, DTS.Pipeline: начинается этап выполнения.
Информация: 0x402090DD при импорте данных в таблицу01, файл с плоским файлом [1]: обработка файла «C: \ import_files \ sampledata.dat» завершена.
Информация: 0x40043009 при импорте данных в таблицу01, DTS.Pipeline: начинается этап очистки.
Информация: 0x4004300B при импорте данных в таблицу01, DTS.Pipeline: «компонент» OLE DB Destination «(5467)» написал 0 строк.
.... поэтому никаких записей не импортировано, и есть предупреждения о частичных строках, но пакет успешно завершен.Когда на этот пакет подается хороший входной файл, 80 символов в строке, он импортирует столько строк, сколько находится в файле, без проблем.
Странно, что мы имеем другие пакеты SSIS, которые терпят неудачу, когда строки переменной длины используются в качестве входных данных. Я посмотрел и сравнил эти пакеты с этим, и для жизни меня не видно, что они могут делать по-другому.
Если у вас есть какие-либо идеи или выводы, с которыми я мог бы следовать, я был бы благодарен. Благодаря!