Преобразование поиска между упакованным десятичным числом DB2 и SQL Server DT_NUMERIC в SSIS

Мы используем DB2 в качестве нашей основной производственной базы данных, но мы используем SQL Server для многих других целей, например, для интеграции между другими клиентами и поставщиками через EDI и т. д.
У меня есть таблица в SQL с номерами SO, и я пытаюсь выполнить поиск в DB2, чтобы получить все счета для SO в моей таблице, и вот что я сделал.

  1. Создано соединение с DB2 с помощью поставщика Microsoft® OLEDB для DB2< /а>
  2. Создан поток данных с источником, использующим подключение к SQL Server.
  3. Добавлено преобразование преобразования данных, пытающееся преобразовать значение INT so в десятичное число. с точностью 12, но я не мог изменить точность в DT_DECIMAL, поэтому единственным типом данных, для которого у меня есть возможность изменить точность, является DT_NUMERIC.
  4. Добавлено преобразование поиска для поиска данных в DB2.

Теперь, когда я пытаюсь создать соединение между исходной таблицей и DB2, я получаю сообщение об ошибке Cannot map the input column, 'so', to the lookup column, 'orno', because the data types do not match.
Согласно Microsoft, это не ошибка, и они предлагают использовать DT_NUMERIC, где вы можете изменить точность.< br> Если я попытаюсь преобразовать SO в DT_DECIMAL без изменения точности, я получу ту же ошибку, о которой говорилось выше.

Есть ли способ обойти ограничения служб SSIS и изменить точность преобразования DT_DECIMAL, чтобы я мог выполнить сопоставление?

Или любые другие предложения?


person Eli Ekstein    schedule 14.01.2014    source источник


Ответы (1)


Простой ответ — изменить свойство соединения в соединении с DB2, чтобы DECIMAL воспринималось как NUMERIC.
См. ниже enter image  описание здесь

person Eli Ekstein    schedule 14.01.2014