ค้นหาการเปลี่ยนแปลงระหว่าง DB2 ที่บรรจุทศนิยมและ SQL Server DT_NUMERIC ใน SSIS

เราใช้ DB2 เป็นฐานข้อมูลการผลิตหลักของเรา แต่เราใช้ SQL Server สำหรับสิ่งอื่นๆ มากมาย เช่น เพื่อทำการบูรณาการระหว่างลูกค้าและผู้ขายรายอื่นๆ ผ่านทาง EDI เป็นต้น
ฉันมีตารางใน SQL ที่มีหมายเลข SO และฉันพยายามทำการค้นหา ใน DB2 เพื่อรับใบแจ้งหนี้ทั้งหมดสำหรับ SO ในตารางของฉัน ดังนั้นนี่คือสิ่งที่ฉันทำ

  1. สร้างการเชื่อมต่อกับ DB2 โดยใช้ ผู้ให้บริการ Microsoft® OLEDB สำหรับ DB2< /ก>
  2. สร้างdata fllow ด้วยแหล่งที่มาโดยใช้การเชื่อมต่อ SQL Server
  3. เพิ่ม การแปลงการแปลงข้อมูล พยายามแปลงค่า 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.
ตามข้อมูลของ 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