ผมขอเริ่มด้วยการชี้แจงว่านี่ไม่ใช่คำถามซ้ำซ้อนหรืออาจเป็นซ้ำได้สำหรับเรื่องนั้น ฉันได้ลองใช้ทุกคำตอบกับทุกตัวแปรที่มีอยู่ของปัญหานี้แล้วใน StackOverflow และ DBA Stack Exchange โดยไม่มีโชค
ฉันดิ้นรนกับปัญหานี้ในช่วงสองวันที่ผ่านมา (ทำงานกับมันประมาณ 7 ชั่วโมงต่อวัน) และแม้หลังจาก Googling ปัญหาก็ปรากฏว่าไม่มีใครมีปัญหาที่แตกต่างกันของปัญหาของฉัน
ฉันพยายามทำอะไร
ใน SSIS ฉันพยายามอ่านจากไฟล์ CSV และแทรกแถวจากแถวนั้นลงในฐานข้อมูล OLE DB สำหรับสิ่งนั้นฉันได้ทำการตั้งค่าที่ง่ายที่สุดเท่าที่เคยเห็นด้านล่าง
Flat File Source
- อ่านแถว CSVDerived Column
- ขณะนี้ไม่ได้ทำอะไรเลย (เป็นเพียงการทดลอง)Data Conversion
- ขณะนี้ไม่ได้ทำอะไรเลย (เป็นเพียงการทดลอง)OLE DB Destination
- เก็บแถวในฐานข้อมูล
เมื่อฉันพยายามเรียกใช้มันจะหยุดการดำเนินการที่ปลายทาง OLE DBของฉันด้วยข้อความแสดงข้อผิดพลาด
มีข้อผิดพลาดกับคอลัมน์อินพุต "จำนวน" (187) บนอินพุต "อินพุตปลายทาง OLE DB" (51) สถานะคอลัมน์ที่ส่งคืนคือ: "ไม่สามารถแปลงค่าได้เนื่องจากข้อมูลอาจสูญหาย"
คอลัมน์ที่ล้มเหลว ( Amount
) เป็นประเภทDT_STR
ปัจจุบัน ดูเหมือนจะเป็นประเภทที่ฉันมีศรัทธามากที่สุดในตอนนี้
ฉันลองทำอะไร
- ฉันได้ลองใช้
Flat File Connection
ฟังก์ชั่น "ประเภทแนะนำ" ในคอลัมน์ที่ล้มเหลว สิ่งนี้ทำให้มันแนะนำSingle byte signed int
ประเภทข้อมูล- หยุดที่ฉันแฟ้มแบนมา
- ข้อผิดพลาดคือการแปลงข้อมูลล้มเหลว การแปลงข้อมูลสำหรับคอลัมน์ "จำนวน" ส่งคืนค่าสถานะ 2 และข้อความสถานะ "ไม่สามารถแปลงค่าได้เนื่องจากอาจสูญเสียข้อมูล"
- ฉันได้พยายามใช้จะโยนคอลัมน์เป็น
Derived Column
DT_I4
- หยุดที่ฉันคอลัมน์มา
- ข้อผิดพลาดคือการแปลงข้อมูลล้มเหลว การแปลงข้อมูลสำหรับคอลัมน์ "จำนวน" ส่งคืนค่าสถานะ 2 และข้อความสถานะ "ไม่สามารถแปลงค่าได้เนื่องจากอาจสูญเสียข้อมูล"
- ฉันได้พยายามใช้จะโยนค่าคอลัมน์ของฉันไป
Data Conversion
DT_I4
- หยุดที่
Data Conversion
ของฉัน - ข้อผิดพลาดคือการแปลงข้อมูลล้มเหลว การแปลงข้อมูลสำหรับคอลัมน์ "จำนวน" ส่งคืนค่าสถานะ 2 และข้อความสถานะ "ไม่สามารถแปลงค่าได้เนื่องจากอาจสูญเสียข้อมูล"
- หยุดที่
- ฉันได้ลองเปลี่ยนความยาวของ
DT_STR
มูลค่าในต้นทางและปลายทาง- หยุดที่ต้นทางหรือปลายทางขึ้นอยู่กับการตั้งค่า
- ฉันลองเชื่อมต่อโดยใช้ตัวเชื่อมต่อแหล่งที่มาของ Excel แทนด้วยและไม่มีการ
IMEX=1
เพิ่มลงในสตริงการเชื่อมต่อ ไม่มีโชค.
ความรู้สึกในการเขียนโปรแกรมของฉันบอกฉันว่าฉันเมา ฉันไม่เคยเจอปัญหาใหญ่อย่างนี้มาก่อนสำหรับเรื่องง่าย ๆ
และทำไมฉันจึงไม่สามารถเพิกเฉยต่อการสูญเสียข้อมูลที่เป็นไปได้ มันน่าผิดหวังจริง ๆ ที่พูดน้อย
ระบบของฉัน
เป็นเครื่อง Windows Server 2008 R2 ที่ติดตั้ง SQL Server 2008 ตัวเครื่องได้รับการอัพเดตอย่างสมบูรณ์ผ่านทาง Windows Update
Amount
คืออะไร
Amount
คอลัมน์ ถ่ายภาพหน้าจอและโปรดอัปเดตคำถามของคุณด้วยภาพนี้