Как удалить префиксные числа из переменной в SSIS?

#ssis #patindex

#ssis #patindex

Вопрос:

У меня есть пакет SSIS, который копирует данные из текстового файла в таблицу в sql server.

Я использую 3 задачи для одного и того же: 1) Исходный плоский файл, 2) Задача производного столбца, 3) задача назначения SQL

В 3-й задаче .. я указываю таблицу …, в которую я должен скопировать данные.

В этой целевой таблице .. есть столбец DESC .. и он имеет тип varchar … и плоский файл содержит данные для этого столбца следующим образом: — «01 planA» .. «04 plan C», «PlanJ».

Мне нужно удалить эти цифры с префиксами. У меня есть запрос, как показано ниже .. но я могу использовать это в производном столбце task..as SSIS не будет поддерживать PATINDEX.

 SUBSTRING([DESC], PATINDEX('%[a-zA-Z]%',[DESC]), LEN([DESC])- PATINDEX('%[a-zA-Z]%',[DESC]) 1)
  

Пожалуйста, помогите мне.

Ответ №1:

Вы могли бы сделать это в задаче скрипта, используя регулярные выражения. Вам нужно будет обратиться к System.Text.RegularExpressions, затем использовать объект регулярных выражений .NET для имитации приведенного выше кода в методе Input0_ProcessInputRow.

В качестве альтернативы, сначала отправьте необработанные данные в промежуточную таблицу SQL и извлеките их оттуда с помощью PATINDEX, как в вашем примере, затем отправьте очищенную версию в таблицу назначения.

Комментарии:

1. что вы подразумеваете под промежуточной таблицей? Могу ли я иметь таблицу temperory в SSIS?