Halfway thông qua một dự án SSIS lĩnh vực bảng nhất định thay đổi char(30)
-nvarchar(30)
SSIS nhận loại cột sai với kết nối OLEDB
Tuy nhiên, khi chạy các gói SSIS, một lỗi nêu cannot convert from unicode to non-unicode
xuất hiện. Tôi đang cố chuyển dữ liệu trực tiếp từ nguồn cơ sở dữ liệu đến đích của nó.
Cả hai kết nối đều sử dụng cùng một lược đồ cơ sở dữ liệu, do đó sẽ không có chuyển đổi.
Khi kiểm tra kiểu dữ liệu cột bên ngoài, nó hiển thị D_STR
, không còn là trường hợp nữa.
Tôi đã thử xóa cả nguồn và đích với hy vọng rằng nó sẽ xóa mọi loại dữ liệu được lưu trong bộ nhớ cache, nhưng nó không hoạt động.
Bất kỳ ý tưởng nào?
Đó là nó. Tôi không thể tìm thấy một cách để thiết lập lại các siêu dữ liệu lưu trữ trong dòng chảy, nhưng điều đó đã làm các trick. Nó là khá xấu để phải làm điều đó mặc dù, kể từ khi người ta phải tái tạo ánh xạ trong các điểm đến: S – cfrag
Hãy suy nghĩ của mỗi cột như một đường ống mà dữ liệu sẽ chảy qua. Vào thời gian thiết kế, bạn đã nói với ssis rằng bạn cần một đường ống có khả năng cho phép 30 byte chảy qua nó. Sau đó, tại thời gian chạy, bạn đã cố gắng nhồi nhét 60 byte thông qua một đường ống 30 byte. Bằng cách bỏ chọn cột, sau đó kiểm tra lại, bạn buộc ssis phải xem lại dữ liệu và thay thế 30 bằng một đường ống 60 byte. – brian
Tôi hiểu nhu cầu về siêu dữ liệu. Những gì tôi không hiểu là thiếu một "refresh cột siêu dữ liệu" nút để buộc rằng "thay đổi kích cỡ". Thay vào đó người ta phải làm lại toàn bộ đường ống. – cfrag