Transformasi pencarian antara desimal paket DB2 dan SQL Server DT_NUMERIC di SSIS

Kami menggunakan DB2 sebagai basis data produksi utama kami, tetapi kami menggunakan SQL Server untuk banyak hal lainnya, misalnya melakukan integrasi antara pelanggan dan vendor lain melalui EDI, dll.
Saya memiliki tabel dalam SQL dengan nomor SO dan saya mencoba melakukan pencarian di DB2 untuk mendapatkan semua faktur SO di meja saya, jadi inilah yang saya lakukan.

  1. Membuat koneksi ke DB2 menggunakan Penyedia Microsoft® OLEDB untuk DB2
  2. Membuat aliran data dengan sumber menggunakan koneksi SQL Server.
  3. Menambahkan Transformasi Konversi Data yang mencoba mengonversi INT sehingga nilainya menjadi desimal dengan presisi 12, tapi saya tidak bisa mengubah presisi di DT_DECIMAL, jadi satu-satunya tipe data yang saya punya opsi untuk mengubah presisinya adalah DT_NUMERIC.
  4. Menambahkan transformasi pencarian untuk mencari data dalam DB2.

Sekarang ketika saya mencoba membuat gabungan antara tabel sumber dan DB2 saya mendapatkan kesalahan Cannot map the input column, 'so', to the lookup column, 'orno', because the data types do not match.
Menurut Microsoft ini bukan bug dan mereka menyarankan untuk menggunakan DT_NUMERIC di mana Anda dapat mengubah presisi.< br> Jika saya mencoba mengonversi SO menjadi DT_DECIMAL tanpa mengubah presisi, saya akan mendapatkan kesalahan yang sama seperti yang disebutkan di atas.

Apakah ada cara untuk mengatasi batasan dari SSIS dan mengubah presisi dalam konversi DT_DECIMAL sehingga saya dapat melakukan pencocokan?

Atau ada saran lain?


person Eli Ekstein    schedule 14.01.2014    source sumber


Jawaban (1)


Jawaban sederhananya adalah dengan mengubah properti koneksi di koneksi DB2 untuk memperlakukan DECIMAL sebagai NUMERIK.
Lihat di bawah masukkan gambar  deskripsi di sini

person Eli Ekstein    schedule 14.01.2014