SSIS 查找转换的区分大小写

在本文中,我们将通过一个示例向您解释在使用 SSIS 查找转换时出现的区分大小写问题。在此示例中,我们将使用 OLE DB 连接连接到 SQL Server。

在开始创建 SSIS 查找区分大小写包之前,让我们先看一下 SQL Server 中的查找表及其数据。

现在,我们也可以看一下源数据。

如果您仔细观察查找表和源表,会发现数据是相同的,但大小写不同。

提示:请参阅查找转换完整缓存模式文章,了解 SSIS 查找如何使用 OLE DB 连接管理器在 SQL Server、Oracle 和 DB2 等数据库上运行。有关更多转换,请单击此处。

配置 SSIS 查找转换

步骤 1:将“数据流任务”从工具箱拖放到“控制流”区域。并将其重命名为 SSIS 查找转换区分大小写。

SSIS Lookup Transformation Case Sensitivity 1

双击它将打开数据流选项卡。

步骤 2:将 OLE DB 源从工具箱拖放到数据流区域。双击数据流区域中的 OLE DB 源,打开连接管理器设置。

从上面的屏幕截图中,您可以看到我们选择 [Employees] 数据库作为源数据库,并选择 [Lookup Transformation Source] 作为源表。

步骤 3:单击“列”选项卡以验证列。在这里,我们可以取消选中不需要的列。

单击“确定”并将“查找转换”从工具箱拖到“数据流”选项卡。

步骤 4:双击“查找转换”以配置查找表(引用表)。

在“常规”选项卡下,“指定如何处理没有匹配项的行”。将默认的“失败组件”更改为“将行重定向到无匹配项输出”选项。通过更改此选项,未匹配的行将被重定向到“无匹配项输出”。否则,包将失败。

SSIS Lookup Transformation Case Sensitivity 4

在“连接类型”部分,我们选择了 OLE DB 连接管理器,因为我们使用 SQL Server 表作为引用表。如果您使用任何缓存文件 (.caw),请使用缓存连接管理器。

单击“连接”选项卡

步骤 5:如果已创建 OLE DB 连接管理器,请从列表中选择。否则,单击“新建”按钮并进行配置。这里,我们选择了“Employees”数据库。

SSIS Lookup Transformation Case Sensitivity 5

在本示例中,我们使用 [Lookup Table] 表作为查找表或引用表。源数据将与此表中提供的数据进行比较。

提示:我们不应将整个表用作引用表。也许您应该使用 SQL 命令来选择您想要引用的必需列名。

步骤 6:单击“可用输入列”。接下来,拖动到“可用查找列”以在两个数据集之间创建连接。

SSIS Lookup Transformation Case Sensitivity 6

源数据中的 Name 列将与查找表中的 [Ref Name] 列进行检查。

  • 如果源数据 Name 列中的每一行都与查找表 [Ref Name] 列中的任何一行匹配,则该行将传递到“匹配项输出”。
  • 如果源数据 Name 列中的每一行都与查找表 [Ref Name] 列中的任何一行不匹配,则该行将传递到“无匹配项输出”。

有时,查找表中可能有额外的列,我们希望将其传递到匹配项输出。在这些情况下,我们必须在“可用查找列”中选中该列。

步骤 7:将两个 OLE DB 目标拖放到数据流区域。接下来,将输出箭头拖到这个新的 OLE DB 目标。会出现一个弹出窗口“输入输出选择”,提示您选择输入输出类型:“查找匹配项输出”或“查找无匹配项输出”。选择“查找匹配项输出”并单击“确定”。

SSIS Lookup Transformation Case Sensitivity 7

当您将另一个输出箭头拖到 OLE DB 目标 1 时,它会自动为其分配“查找无匹配项输出”。

SSIS Lookup Transformation Case Sensitivity 8

步骤 8:双击 OLE DB 目标并选择 OLE DB 连接管理器。接下来,在 [Employees] 数据库中选择 [Case Matching Rows in the Lookup Transformation] 表来存储匹配行数据。

步骤 9:单击“映射”选项卡以检查源列是否映射到目标列。

步骤 10:现在双击 OLE DB 目标 1 来配置无匹配项输出。在这里,我们将选择 [Employees] 数据库中的 [Case Not Matching in Lookup Transformation] 表来存储不匹配的行数据。

SSIS Lookup Transformation Case Sensitivity 11

重复步骤 9 并单击“确定”以完成 SSIS 查找转换区分大小写包的创建。

右键单击解决方案资源管理器中的 SSIS 查找转换区分大小写包,然后选择“执行包”。

SSIS Lookup Transformation Case Sensitivity 12

让我们打开 SQL Server Management Studio 来查看 SSIS 查找转换区分大小写包的匹配数据。尽管源数据中的每一行都与查找表匹配,但它只显示了一行作为匹配数据。要消除这种情况,请使用字符映射转换将所有源数据转换为小写或大写。

让我们看看不匹配的数据。

从上面的屏幕截图中,所有不是小写的行都被视为不匹配输出。