Шаг 2. Создание поврежденного файла
Для демонстрации настройки и обработки ошибок преобразования необходимо создать образец неструктурированного файла, который при обработке вызовет сбой в работе компонента.
В этой задаче предстоит скопировать существующий образец неструктурированного файла. Затем предстоит открыть его в приложении «Блокнот» и изменить столбец CurrencyID таким образом, чтобы при поиске совпадений во время преобразования произошел сбой. При обработке нового файла произойдет сбой в преобразовании «Уточняющий запрос» для CurrencyKey, что приведет к ошибке в работе всего пакета. После создания поврежденного образца файла предстоит выполнить пакет, чтобы просмотреть его поведение при сбое.
Создание поврежденного образца неструктурированного файла
В приложении «Блокнот» или другом текстовом редакторе откройте файл Currency_VEB.txt.
Образцы данных включаются в пакеты занятий по службам SSIS. Чтобы загрузить образцы данных и пакеты занятий, выполните следующие действия.
Перейдите к образцам продуктов служб Integration Services.
Перейдите на вкладку DOWNLOADS.
Щелкните файл SQL2012.Integration_Services.Create_Simple_ETL_Tutorial.Sample.zip.
Используя функции текстового редактора для поиска и замены, замените все вхождения строки VEB на BAD.
Сохраните измененный файл в той же папке, где находятся остальные файлы образцов данных, с именем Currency_BAD.txt.
Важно!
Убедитесь, что файл Currency_BAD.txt сохранен в той же папке, что и другие файлы образцов данных.
Закройте текстовый редактор.
Проверка факта возникновения ошибки во время выполнения
В меню Отладка выберите команду Начать отладку.
При третьем проходе потока данных в преобразовании Lookup Currency Key будет предпринята попытка обработать файл Currency_BAD.txt, при этом произойдет ошибка преобразования. Ошибка преобразования вызовет отказ работы всего пакета.
В меню Отладка выберите команду Остановить отладку.
В области конструктора откройте вкладку Результаты выполнения.
Просмотрите журнал и убедитесь, что произошла следующая необработанная ошибка:
[Lookup Currency Key[27]] Error: Row yielded no match during lookup.
Примечание
Число 27 представляет собой идентификатор компонента. Это значение присваивается при создании потока данных, так что в пакете оно может отличаться от приведенного в учебнике.