Задача 2. Создание поврежденного файла

Для демонстрации настройки и обработки ошибок преобразования необходимо создать образец плоского файла, который при обработке вызовет сбой в работе компонента.

В этой задаче предстоит скопировать существующий образец плоского файла. Затем предстоит открыть его в приложении «Блокнот» и изменить столбец CurrencyID таким образом, чтобы при поиске совпадений во время преобразования произошел сбой. При обработке нового файла произойдет сбой в преобразовании «Уточняющий запрос» для CurrencyKey, что приведет к ошибке в работе всего пакета. После создания поврежденного образца файла предстоит выполнить пакет, чтобы просмотреть его поведение при сбое.

Создание поврежденного образца плоского файла

  1. В приложении «Блокнот» или другом текстовом редакторе откройте файл Currency_VEB.txt.

    По умолчанию файл Currency_VEB.txt находится в папке «c:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Tutorial\Creating a Simple ETL Package\Sample Data».

  2. Используя функции текстового редактора для поиска и замены, замените все вхождения строки VEB на BAD.

  3. Сохраните измененный файл в той же папке, где находятся остальные файлы образцов данных, с именем Currency_BAD.txt.

    Важное примечаниеВажно!

    Убедитесь, что файл Currency_BAD.txt сохранен в папке C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Tutorial\Creating a Simple ETL Package\Sample Data.

  4. Закройте текстовый редактор.

Проверка факта возникновения ошибки во время выполнения

  1. В меню Отладка выберите команду Начать отладку.

    При третьем проходе потока данных в преобразовании Lookup Currency Key будет предпринята попытка обработать файл Currency_BAD.txt, при этом произойдет ошибка преобразования. Ошибка преобразования вызовет отказ работы всего пакета.

  2. В меню Отладка выберите команду Остановить отладку.

  3. В области конструктора откройте вкладку Результаты выполнения.

  4. Просмотрите журнал и убедитесь, что произошла следующая необработанная ошибка:

    [Lookup Currency Key[30]] Error: Row yielded no match during lookup.

    ПримечаниеПримечание

    Число 30 представляет собой идентификатор компонента. Это значение присваивается при создании потока данных, так что в пакете оно может отличаться от приведенного в учебнике.