Hãy để tôi bắt đầu bằng cách làm rõ rằng đây không phải là một câu hỏi trùng lặp , cũng không phải là một bản sao tiềm năng cho vấn đề đó. Tôi đã cố gắng thực hiện mọi câu trả lời cho mọi biến thể đã tồn tại của vấn đề này trên StackOverflow và DBA Stack Exchange, mà không gặp may mắn.
Tôi đã phải vật lộn với vấn đề này trong hai ngày qua (làm việc với nó khoảng 7 giờ mỗi ngày) và ngay cả sau khi giải quyết vấn đề, có vẻ như không ai khác có cùng một biến thể chính xác của vấn đề của tôi.
Tôi đang cố gắng làm gì?
Trong SSIS, tôi đang cố đọc từ tệp CSV và chèn các hàng từ đó vào cơ sở dữ liệu OLE DB. Vì thế, tôi đã thực hiện thiết lập đơn giản nhất từ trước đến nay.
Flat File Source
- đọc các hàng CSV.Derived Column
- hiện tại không có gì (nó chỉ ở đó để thử nghiệm).Data Conversion
- hiện tại không có gì (nó chỉ ở đó để thử nghiệm).OLE DB Destination
- lưu trữ các hàng trong cơ sở dữ liệu.
Khi tôi cố chạy nó, nó dừng thực thi tại Đích OLE DB của tôi với thông báo lỗi sau.
Đã xảy ra lỗi với cột đầu vào "Số tiền" (187) trên đầu vào "Đầu vào đích OLE DB" (51). Trạng thái cột được trả về là: "Không thể chuyển đổi giá trị do mất dữ liệu."
Cột không thành công ( Amount
) hiện thuộc loại DT_STR
. Nó dường như là loại mà tôi có niềm tin nhất vào lúc này.
Tôi đã thử những gì?
- Tôi đã thử sử dụng
Flat File Connection
chức năng "Loại đề xuất" trên cột bị lỗi. Điều này làm cho nó đề xuấtSingle byte signed int
kiểu dữ liệu.- Dừng tại Nguồn tập tin phẳng của tôi .
- Lỗi là chuyển đổi dữ liệu không thành công. Chuyển đổi dữ liệu cho cột "Số tiền" trả về giá trị trạng thái 2 và văn bản trạng thái "Không thể chuyển đổi giá trị do mất dữ liệu."
- Tôi đã thử sử dụng
Derived Column
để đúc cột thành aDT_I4
.- Dừng tại Cột Xuất phát của tôi .
- Lỗi là chuyển đổi dữ liệu không thành công. Chuyển đổi dữ liệu cho cột "Số tiền" trả về giá trị trạng thái 2 và văn bản trạng thái "Không thể chuyển đổi giá trị do mất dữ liệu."
- Tôi đã thử sử dụng
Data Conversion
để chuyển giá trị cột của mình thành aDT_I4
.- Dừng lại ở của tôi
Data Conversion
. - Lỗi là chuyển đổi dữ liệu không thành công. Chuyển đổi dữ liệu cho cột "Số tiền" trả về giá trị trạng thái 2 và văn bản trạng thái "Không thể chuyển đổi giá trị do mất dữ liệu."
- Dừng lại ở của tôi
- Tôi đã thử thay đổi độ dài
DT_STR
giá trị của mình trong nguồn và đích.- Dừng tại nguồn hoặc đích tùy thuộc vào cài đặt.
- Thay vào đó, tôi đã thử kết nối bằng trình kết nối Nguồn Excel với và không
IMEX=1
thêm chuỗi kết nối. Không may mắn.
Ý thức lập trình của tôi nói với tôi rằng tôi đang say sưa. Tôi chưa bao giờ gặp phải một vấn đề lớn như vậy cho một điều đơn giản như vậy.
Và tại sao tôi không thể bỏ qua việc mất dữ liệu "tiềm năng"? Thật là bực bội khi nói ít nhất.
Hệ thống của tôi
Đó là máy Windows Server 2008 R2 được cài đặt SQL Server 2008. Bản thân máy được cập nhật đầy đủ thông qua Windows Update.
Amount
gì?
Amount
cột. Chụp ảnh màn hình và xin vui lòng cập nhật câu hỏi của bạn với hình ảnh này.