Можно ли заменить все вхождения символа нижнего регистра в SSIS или SQL? - PullRequest
2 голосов
/ 20 февраля 2020

Для некоторых конкретных полей мне нужно добавить подчеркивание после любого символа нижнего регистра. UPPER / LOWER не помогают в этом случае, но тот факт, что эти функции могут определить, какие символы имеют неправильный регистр, говорит о том, что это возможно.

Обратите внимание, что я использую SQL Сервер.

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Поскольку вопрос помечен , я предоставлю решение SSIS.

Вы можете просто использовать компонент Script в задаче потока данных и для этого используйте функцию C# regex.replace (), например:

Обратите внимание, что вам нужно импортировать System.Text.RegularExpressions сборку в сценарии.

var regex = new Regex("[a-z]", RegexOptions.None);
row.outputcolumn = regex.Replace(row.inputcolumn, m => m + "_");

Если вам нужно добиться этого с помощью SQL, вы можете использовать функции CLR, подобные:

0 голосов
/ 20 февраля 2020

Если у вас нет подчеркивания, кроме строчных букв

SELECT REPLACE(fieldName, '_', '')
SELECT REPLACE(fieldName COLLATE SQL_Latin1_General_CP1_CS_AS, 'a', 'a_')
SELECT REPLACE(fieldName COLLATE SQL_Latin1_General_CP1_CS_AS, 'b', 'b_')
...