3

我有一个 csv 文件,其中包含许多具有不同订单号的行

我需要通过 SSIS 派生列转换编辑器更改它们,以便我可以转换输出。

我需要编写在订单末尾添加数字的表达式,但我需要不同的数字或另一个订单,所以它应该是递增的

Derived column Name    Derived Column         Expression             Data Type  
OrderNumber           <add as new column>     ?  


Derived column Name    Derived Column         Expression             Data Type  
OrderNumber           <add as new column>     OrderNumber+"-"+"1"    unicode string

在此处输入图像描述

4

2 回答 2

1

没有股票方法可以做你想要达到的目标。更容易的是编写一个脚本组件并让它为您生成数字。一旦您从该脚本组件中获得新列,就很容易将其与您现有的订单号连接起来。

只是好奇,为什么不能在数据库本身上执行此操作?实施和控制 IMO 会容易得多。

这是生成数字的链接:在 SSIS 中生成代理键

于 2019-06-13T17:52:12.670 回答
1

我认为您不能使用派生列转换添加增量数字,您必须使用脚本组件来实现这一点。

只需添加一个脚本组件,转到Inputs and Outputs选项卡并添加类型的输出列DT_STR。在脚本编辑器中使用类似的脚本:

int intOrder = 1;
public override void Input0_ProcessInputRow(Input0Buffer Row)
{

if(!Row.OrderNumber_IsNull && !String.IsNullOrEmpty(Row.OrderNumber)){

    Row.outOrderNumber = Row.OrderNumber + "-" + intOrder.ToString();
    intOrder++;

}else{

    Row.outOrderNumber_IsNull = true;

}

}


于 2019-06-13T19:21:10.040 回答