Сбой потока данных при последней записи об ошибке - Oracle Destination

У меня есть простая задача потока данных, которая передает 1M записей из источника в место назначения. И таблица источника, и таблица назначения являются таблицами Oracle. Данные в источнике состоят из двух столбцов Id и Name, как показано ниже -

create table SrcEmployeeData
(
   Id   int
  ,Name varchar(50) 
);

Значения в нем (1, "Тест"), (2, "Тест") и так далее до миллиона. Таблица назначения является зеркалом исходной таблицы, за исключением столбца "Имя", который не является пустым. В источнике я обновил столбец Name из 10 случайных строк до NULL. Чтобы зафиксировать эти ошибки, я создал 4 пункта назначения с правильным перенаправлением ошибок.

Первые три из целевой таблицы. Во-первых, для параметра Rows Per Batch / Maximum установлен размер коммита, равный 50 000. Второй имеет те же значения, установленные на 10000. Третий имеет те же значения, установленные в 1. Окончательный ДПФ используется для захвата фактических записей ошибок. Все три DFT имеют режим доступа к данным, установленный на "Таблица или просмотр - быстрая загрузка".

Это выглядит так -

введите описание изображения здесь

Когда пакет начинает выполняться, распространение записи об ошибке до последней таблицы идет как положено. Исключая, когда дело доходит до последней записи, первый DFT с 50 000 записей, установленный как пакет, терпит неудачу. Когда я смотрю на целевую таблицу EmployeeData, неожиданно я не нахожу ни одной записи. Что здесь не так?

Вот две ошибки, которые я получаю -

[OLE_DST - загрузка данных (50000 строк) [69]] Ошибка: код ошибки служб SSIS DTS_E_OLEDBERROR. Произошла ошибка OLE DB. Код ошибки: 0xFFFFFFFF.

Ошибка [SSIS.Pipeline]: Код ошибки SSIS DTS_E_PROCESSINPUTFAILED. Метод ProcessInput в компоненте "OLE_DST - загрузка данных (50000 строк)" (69) завершился ошибкой с кодом ошибки 0xC0202009 при обработке ввода "Вход назначения OLE DB" (82). Идентифицированный компонент возвратил ошибку из метода ProcessInput. Ошибка относится только к компоненту, но она является фатальной и приведет к остановке выполнения задачи "Поток данных". Перед этим могут быть сообщения об ошибках с дополнительной информацией о сбое.

Вот случайные строки, имеющие значения NULL -

введите описание изображения здесь

Я использую последний поставщик Oracle для OLE DB и загрузил последние компоненты данных Oracle для Oracle по ссылке здесь.


РЕДАКТИРОВАТЬ - Просто чтобы сделать это немного более странным. Последний DFT, в котором я фиксирую строки ошибок, содержит все неверные данные, как показано ниже (я использую таблицу назначения SQL Server). До сих пор я трижды проводил этот тест, и у меня все время одни и те же проблемы. Любая помощь?

введите описание изображения здесь

1 ответ

Решение

После публикации, на которую ссылался Трой Виттофт, все, что мне нужно было сделать, это изменить режимы доступа к данным для трех назначений Oracle OLE DB на "Таблица или представление", т.е. OpenRowSet. Затем данные были правильно переданы, и ошибки также были зафиксированы точно по мере необходимости.

Другие вопросы по тегам