在 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 Transformation、Derived Column Transformation、Built-in Functions 和 SQL Server 文章。

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

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

以下表达式会将 Phone 列中的“-”符号替换为空格。
REPLACE( [Phone], "-", " " )
单击“确定”关闭编辑器窗口。
拖放 Union All Transformation 并将其连接到派生列。接下来,右键单击连接节点并选择“启用数据查看器”。请运行 SSIS 字符串 REPLACE 函数包以查看已替换的姓名和电话号码。
