Как удалить номера с префиксами из varchar в SSIS? - PullRequest
0 голосов
/ 11 апреля 2011

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

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

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

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

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

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

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

1 Ответ

1 голос
/ 12 апреля 2011

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

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

...