SSIS 字符串替换

在 SSIS 中,有一个 REPLACE 函数,它会在给定的字符表达式中搜索指定表达式,如果找到则将其替换为另一个字符串。这对于替换大量产品名称、颜色等非常有用。本文将介绍如何使用 REPLACE 函数,并附带示例。用于将子字符串替换为全新字符串的语法如下所示。

REPLACE(<<character_expression>>, <<search_expression>>, <<replace_expression>>)
  • character_expression:原始字符串或将要进行搜索的列名。
  • search_expression:要在 character_expression 中搜索的字符或子字符串。
  • replace_expression:用于替换 search_expression 的字符或子字符串。

为了演示字符串 REPLACE 函数,我们将使用下面包含 15 条记录的 Employee 表。请参考 SSIS 中的 Union All TransformationDerived Column TransformationBuilt-in FunctionsSQL Server 文章。

Source Table

SSIS 字符串替换

对于此 REPLACE 函数,我将添加一个数据流任务,然后双击它进入数据流区域。接下来,添加 OLE DB 源以从上述 SQL 数据库表中读取数据。请将 OLE DB 源连接到派生列转换,因为它有助于编写 REPLACE 函数表达式并创建新列。

Data Flow to add Derived Column

接下来,双击它以打开“派生列转换编辑器”。将 SSIS REPLACE 函数拖放到“表达式”下的行单元格中,将 Character_expression 替换为字符串列名,将 search_expression 替换为字符或子字符串,并将 replace_expression 替换为另一个子字符串。您可以手动删除整个表达式,也可以通过拖放列来自动完成替换。

以下表达式会将 Name 列中的空格替换为 * 符号。

REPLACE( [Name], " ", "*" )
SSIS String Replace Expression

以下表达式会将 Phone 列中的“-”符号替换为空格。

REPLACE( [Phone], "-", " " )

单击“确定”关闭编辑器窗口。

拖放 Union All Transformation 并将其连接到派生列。接下来,右键单击连接节点并选择“启用数据查看器”。请运行 SSIS 字符串 REPLACE 函数包以查看已替换的姓名和电话号码。

SSIS String Replace output