Производный столбец Transformation Editor - мне нужно добавить номер в конце номера заказа в порядке приращения - PullRequest
3 голосов
/ 13 июня 2019

У меня есть 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

enter image description here

Ответы [ 2 ]

2 голосов
/ 13 июня 2019

Я не думаю, что вы можете добавить инкрементное число, используя производное преобразование столбца, вы должны использовать компонент сценария для достижения этого.

Просто добавьте компонент скрипта, перейдите на вкладку 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;

}

}


1 голос
/ 13 июня 2019

Не существует фондового метода, чтобы делать то, что вы пытаетесь достичь. Что было бы проще, так это написать компонент скрипта, который бы генерировал числа для вас. Как только вы получите новый столбец из этого компонента скрипта, достаточно легко объединить его с существующим номером заказа.

Просто любопытно, почему вы не можете сделать это на самой базе данных? Было бы намного проще внедрить и контролировать ИМО.

Вот ссылка на генерацию чисел: Генерация суррогатных ключей в SSIS

...