在 SSIS 中 - 如何将行中的数据拆分为 2 行 例如:
从:
ID Data
1 On/Off
2 On/Off
自:
ID Data
1 On
1 Off
2 On
2 Off
解决方案概述
您必须使用脚本组件来实现此目的。 使用非同步输出缓冲区根据您自己的逻辑从 on 行生成多行。
解决方案详细信息
- 添加数据流任务
- 在
DataFlow Task
中添加Flat File Source
、Script Component
和目标 - 在脚本组件中,选择
ID
、Data
列作为输入 - 转到
Input and Outputs
页面,单击"输出"并将"Synchronous Input
"属性更改为"none
- 将两个输出列添加到
ID
和Data
到Output
- 将脚本语言更改为
Visual Basic
-
在脚本编辑器中编写以下代码
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer) Dim strValues() as String = Row.Data.Split(CChar("/") For each str as String in strValues Output0Buffer.AddRow() Output0Buffer.ID = Row.ID Output0Buffer.Data = str Next End Sub
附加信息
有关更多详细信息,请访问以下链接:
- SSIS - 脚本组件,将单行拆分为多行
- 每个单行输入从脚本组件输出多行
使用 T-SQL
根据您的评论,这是一个链接,其中包含如何使用SQL命令完成此操作的n个示例
- 将逗号分隔的字符串转换为单独的行