如何使SSIS Lookup转换忽略字母大小写?

7
希望这很容易解释,但是我在我的SSIS数据包中有一个查找转换。我正在使用它来查找维度表中员工记录的ID。然而,我的问题是,一些源数据中的员工姓名全部大写(例如:CHERRERA),而我使用的比较数据全部小写(例如:cherrera)。
对于那些不完全相同的大小写记录(例如:cherrera vs cherrera可以正常工作,cherrera vs CHERRERA失败),查找失败了。是否有办法使查找转换忽略字符串/varchar数据类型的大小写?
4个回答

15

我认为没有办法使转换不区分大小写,但是您可以通过使用LOWER()字符串函数修改转换的SQL语句来确保源数据与比较数据的大小写相匹配。


完美的解决方案 - 我在查找之前放置了一个派生列转换器,只是将LOWER()应用于该列。非常好用 :-) - rrydman

13

将查找转换的CacheType属性设置为Partial或None。

现在,查找比较将由SQL Server执行,而不是由SSIS查找组件执行,并且不再区分大小写。


1
这对我的应用程序完美地起作用了,而且它的优点是易于使用。 - John Sully

1

你需要更改源代码并查找数据,两者都应该是相同的大小写类型。


1

根据这个Microsoft文章:

Lookup转换执行的查找是区分大小写的。为了避免由数据中的大小写差异引起的查找失败,首先使用Character Map转换将数据转换为大写或小写。然后,在生成参考表的SQL语句中包含UPPER或LOWER函数。

要了解更多关于Character Map转换的信息,请访问此链接:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接