2009-05-11 52 views
7

Hy vọng điều này rất dễ giải thích, nhưng tôi có một sự chuyển đổi tra cứu trong một trong các gói SSIS của tôi. Tôi đang sử dụng nó để tra cứu id cho một bản ghi emplouyee trong một bảng kích thước. Tuy nhiên vấn đề của tôi là một số dữ liệu nguồn có tên nhân viên trong tất cả các thủ đô (ví dụ: CHERRERA) và dữ liệu so sánh sử dụng là tất cả các chữ thường (ví dụ: cherrera).Tôi làm cách nào để chuyển đổi SSIS Lookup để bỏ qua trường hợp chữ cái?

tra cứu không thành công cho các bản ghi không phải là trường hợp 100% tương tự (ví dụ: cherrera vs cherrera hoạt động tốt - cherrera vs CHERRERA không thành công). Có cách nào để làm cho việc chuyển đổi tra cứu bỏ qua trường hợp trên một kiểu dữ liệu chuỗi/varchar?

Trả lời

12

Không có cách nào tôi tin rằng chuyển đổi không phân biệt chữ hoa chữ thường, tuy nhiên bạn có thể sửa đổi câu lệnh SQL cho phép biến đổi của mình để đảm bảo dữ liệu nguồn khớp với trường hợp dữ liệu so sánh của bạn bằng cách sử dụng hàm LOWER() hàm chuỗi.

+0

Perfect giải pháp - Tôi đặt một cột có nguồn gốc chuyển đổi trước khi tra cứu của tôi mà chỉ áp dụng LOWER() để cột. Hoạt động tuyệt vời :-) – rrydman

+0

bingo! DBA lười biếng. – D3vtr0n

1

Bạn phải thay đổi nguồn và cũng như tìm kiếm dữ liệu, cả hai đều phải ở cùng loại trường hợp.

7

Đặt thuộc tính CacheType của phép chuyển đổi tra cứu thành một phần hoặc Không.

Các so sánh tra cứu giờ đây sẽ được thực hiện bởi SQL Server chứ không phải bởi thành phần tra cứu SSIS và sẽ không còn phân biệt chữ hoa chữ thường.

Để biết thêm thông tin, xem here

0

cơ sở về vấn đề này Microsoft Article:.

"Các tra cứu được thực hiện bởi sự biến đổi Lookup là trường hợp nhạy cảm Để tránh thất bại tra cứu được gây ra bởi trường hợp khác biệt trong dữ liệu, sử dụng đầu tiên sau đó, bao gồm hàm UPPER hoặc LOWER trong câu lệnh SQL tạo bảng tham chiếu "

Để đọc thêm về Character Map chuyển đổi, hãy làm theo liên kết này"

Các vấn đề liên quan