เราใช้ DB2 เป็นฐานข้อมูลการผลิตหลักของเรา แต่เราใช้ SQL Server สำหรับสิ่งอื่นๆ มากมาย เช่น เพื่อทำการบูรณาการระหว่างลูกค้าและผู้ขายรายอื่นๆ ผ่านทาง EDI เป็นต้น
ฉันมีตารางใน SQL ที่มีหมายเลข SO และฉันพยายามทำการค้นหา ใน DB2 เพื่อรับใบแจ้งหนี้ทั้งหมดสำหรับ SO ในตารางของฉัน ดังนั้นนี่คือสิ่งที่ฉันทำ
- สร้างการเชื่อมต่อกับ DB2 โดยใช้ ผู้ให้บริการ Microsoft® OLEDB สำหรับ DB2< /ก>
- สร้างdata fllow ด้วยแหล่งที่มาโดยใช้การเชื่อมต่อ SQL Server
- เพิ่ม การแปลงการแปลงข้อมูล พยายามแปลงค่า INT ดังนั้นให้เป็นทศนิยม ด้วยความแม่นยำ 12 แต่ฉันไม่สามารถเปลี่ยนความแม่นยำใน DT_DECIMAL ได้ ดังนั้นประเภทข้อมูลเดียวที่ฉันมีตัวเลือกในการเปลี่ยนความแม่นยำคือ DT_NUMERIC
- เพิ่มการแปลงการค้นหาเพื่อค้นหาข้อมูลภายใน 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 เพื่อให้ฉันสามารถจับคู่ได้หรือไม่
หรือข้อเสนอแนะอื่นๆ?