派生列转换编辑器 - 我需要按递增顺序在订单号末尾添加数字

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (9)

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

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

我需要编写在订单末尾添加数字的Expression,但我需要不同的数字或其他顺序,所以它应该是增量

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

提问于
用户回答回答于

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

只需添加脚本组件,转到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;

}

}


用户回答回答于

没有库存方法来做你想要实现的目标。更容易的是编写脚本组件并为您生成数字。从该脚本组件中获取新列后,可以很容易地将其与现有订单号连接。

只是好奇,为什么你不能在数据库本身这样做?实施和控制IMO会容易得多。

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

扫码关注云+社区

领取腾讯云代金券