Необходимо идентифицировать и заменить кусок строки в строке - PullRequest
0 голосов
/ 05 февраля 2019

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

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

Например, если значение «Эта строка содержит это ограниченное значение 4402631524852147 и его нужно маскировать», мой сценарий должен внести эти изменения в «Эта строка содержит это ограниченное значение ************ 2147 и его нужно замаскировать "

Я смог создать запрос, используя sqlext..regexpextract и sqleext..regexp_like, чтобы определить значения, но я не могу понять, какзаменить строки в строке.

Запрос, который я использовал для определения значений:

    SELECT ${COLUMN_NAME},'XXXXXXXXXXXXXXXX'||SUBSTR(${COLUMN_NAME},13,4) as 
MASKED_ID
FROM ${TABLE_NAME} 
WHERE sqlext..regexp_like(${COLUMN_NAME},'[0-9]{16}','I')
AND SUBSTR(sqlext..regexp_extract(${COLUMN_NAME},'[0-9]{16}','I'),1,6) in
('440263')

Есть ли способ использовать возможно sqlext..regexp_replace?Или другую команду SQL для замены в строке?

1 Ответ

0 голосов
/ 06 февраля 2019

Вы можете использовать regex_replace для этой цели: https://www.ibm.com/support/knowledgecenter/en/SSULQD_7.1.0/com.ibm.nz.sqltk.doc/r_sqlext_regexp_replace.html

...