2014-01-14 2 views
1

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

  1. Создано подключение к DB2 с помощью Microsoft® OLEDB Provider for DB2
  2. Создано data fllow с источником, используя подключение к SQL Server.
  3. Добавил Data Conversion Transformation, пытающийся преобразовать значение INT таким образом в десятичное с точностью 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.
According to Microsoft это не ошибка, и они предлагают использовать DT_NUMERIC, где вы можете изменить точность.
Если я попытаюсь преобразовать SO в DT_DECIMAL без изменения точности, я бы получил ту же ошибку, о которой упоминалось выше.

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

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

ответ

1

Простым ответом является изменение свойства соединения в соединении DB2 для обработки DECIMAL как NUMERIC.
См. Ниже enter image description here

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