Служба SSIS не может определить правильный тип данных столбца - PullRequest
1 голос
/ 03 мая 2011

У меня есть простой пакет служб SSIS, который выбирает данные из базы данных Oracle и вставляет данные на сервер sql.В DataFlow у меня есть 3 задачи:

  1. У меня есть источник OLE DB, который выполняет очень простой запрос.Выберите Col1, Col2, Col3, Col4, Col5, Col6, Col7 из таблицы.
  2. Затем у меня есть задача преобразования данных, которая преобразует col6 и col7 из Юникода STRING [DT_WSTR] в STRING [DT_STR].
  3. Назначение OLE DB (сервер sql).

ОШИБКА: SSIS переводит исходную задачу OLE DB в красный цвет и отображает следующую ошибку:

Произошла ошибкас выходным столбцом «Col3» (23) на выходе «Выход источника OLE DB» (11).Возвращено состояние столбца: «Текст был усечен или один или несколько символов не совпадали на целевой кодовой странице.».

«Выходной столбец« Col3 »(23)» не выполнен, поскольку произошло усечение, иРасположение строки усечения в «столбце вывода« OS_VISIT_ID »(23)» указывает на сбой при усечении.Произошла ошибка усечения в указанном объекте указанного компонента.

Но Col3 не является текстом его числа, и SSIS обнаруживает его как Юникод STRING [DT_WSTR].Я даже пытался преобразовать Col3 в Числовое в задаче Преобразования данных, прежде чем перейти к OLE DB Destination.Но я все еще получаю ту же ошибку.

1 Ответ

2 голосов
/ 03 мая 2011

Нажмите Error Output - выберите усечение и выберите строку перенаправления. Затем добавьте этап объединения после источника, чтобы соединить оба обычных выхода со строками «ошибки». Присоедините средство просмотра данных к строке ошибки и посмотрите, на какие данные он жалуется. Теперь задача будет выполняться как обычно.

PS: Некоторые драйверы провайдера-странника требуют от вас этого, даже если это само по себе никогда не «выходит из строя». Например, драйверы Acucorp XBDC (которые читают некоторые странные плоские файлы формата db) - завершатся ошибкой, если вы не настроите вывод ошибок, даже если каждая строка будет проходить через обычный вывод, как только вы настроите строку ошибок.

...