派生列转换编辑器 - 我需要以递增顺序在订单号末尾添加数字
Derived column Transformation Editor - I need add number at the end of order number in increment order
我有一个 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
没有现成的方法可以实现您想要实现的目标。更容易的是编写一个脚本组件并让它为您生成数字。一旦您从该脚本组件中获取新列,就很容易将其与您现有的订单号连接起来。
很好奇,为什么不能在数据库本身上执行此操作?实施和控制IMO会容易得多。
这是生成数字的 link:Generating Surrogate keys in SSIS
我认为您不能使用派生列转换来添加增量数字,您必须使用脚本组件来实现。
只需添加一个脚本组件,转到 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;
}
}
我有一个 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
没有现成的方法可以实现您想要实现的目标。更容易的是编写一个脚本组件并让它为您生成数字。一旦您从该脚本组件中获取新列,就很容易将其与您现有的订单号连接起来。
很好奇,为什么不能在数据库本身上执行此操作?实施和控制IMO会容易得多。
这是生成数字的 link:Generating Surrogate keys in SSIS
我认为您不能使用派生列转换来添加增量数字,您必须使用脚本组件来实现。
只需添加一个脚本组件,转到 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;
}
}