Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 基于字段值拆分SSI中的行_Sql Server_Ssis_Etl - Fatal编程技术网

Sql server 基于字段值拆分SSI中的行

Sql server 基于字段值拆分SSI中的行,sql-server,ssis,etl,Sql Server,Ssis,Etl,在SSIS中-如何将数据从行拆分为2行 例如: 发件人: 致: 解决方案概述 您必须使用脚本组件来实现这一点。使用非同步输出缓冲区根据您自己的逻辑从一行中生成多行 解决方案详细信息 添加数据流任务 在数据流任务中添加平面文件源、脚本组件和目标 在脚本组件中,选择ID,Data列作为输入 转到输入和输出页面,单击输出并将同步输入属性更改为无 将两个输出列ID和Data添加到Output 将脚本语言更改为Visual Basic 在脚本编辑器中编写以下代码 Public Overrides Sub

在SSIS中-如何将数据从行拆分为2行 例如:

发件人:

致:

解决方案概述 您必须使用脚本组件来实现这一点。使用非同步输出缓冲区根据您自己的逻辑从一行中生成多行

解决方案详细信息
  • 添加数据流任务
  • 数据流任务中
    添加
    平面文件源
    脚本组件
    和目标
  • 在脚本组件中,选择
    ID
    Data
    列作为输入
  • 转到
    输入和输出
    页面,单击输出并将
    同步输入
    属性更改为
  • 将两个输出列
    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
    
  • 补充资料 有关更多详细信息,请访问以下链接:


    使用T-SQL 根据您的评论,这是一个链接,其中包含一个示例,说明如何使用SQL命令完成此操作


    视情况而定。所有行是否都有两个元素,或者某些行是否有更多或更少的元素?不,只有这两行谢谢,但是您知道sql server中的一个脚本也有相同的功能吗?@Tzachi戈兰我提供的链接是关于如何使用sql实现这一点的类似问题,如果您需要任何帮助,请给我反馈
    ID  Data
    1   On
    1   Off
    2   On
    2   Off
    
    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