2011-05-02 4 views
1

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

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

ERROR: SSIS turns the OLE DB Source Task to Red and displays the following error:

There was an error with output column "Col3" (23) on output "OLE DB Source Output" (11). The column status returned was: "Text was truncated or one or more characters had no match in the target code page.".

The "output column "Col3" (23)" failed because truncation occurred, and the truncation row disposition on "output column "OS_VISIT_ID" (23)" specifies failure on truncation. A truncation error occurred on the specified object of the specified component.

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

ответ

2

Нажмите «Ошибка» - выберите усечение и выберите строку переадресации. Затем добавьте студию «Союз» после источника, чтобы подключить как обычный вывод с строками «ошибка». Прикрепите средство просмотра данных к строке ошибки и посмотрите, какие данные он нажимает. Теперь он будет выполнять задачу как обычно.

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

Смежные вопросы