Нужно зашифровать данные в терадате SQL Query - PullRequest
0 голосов
/ 07 мая 2019

У меня есть требование для шифрования данных в тераданных с использованием SQL-запроса или хранимой процедуры.
У меня есть данные в следующем примере:

May123@34@#
AbC@#$%1234DE#f
zyx@12

Итак, я хочу вывод в следующем формате

aaadddpddpp
aaappppddddaapa
aaapdd

Итак, мы хотим заменить символ на a и число на d, а специальный символ на p.

Ваша помощь высоко ценится.

1 Ответ

1 голос
/ 07 мая 2019

Это похоже на маскирование данных, а не шифрование. Шифрование - это то, что вы можете отменить, расшифровав, где маскировка является односторонней.

Вы можете использовать Regexp_Replace(), чтобы сделать перестановки:

SELECT REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE('May123@34@#', '[a-z]', 'a', 1, 0, 'i'),'[0-9]', 'd', 1, 0, 'i'), '[^a-z]', 'p', 1, 0, 'i')

результат:

aaadddpddpp

Сначала меняются все буквы на a. Затем он меняет все числа на d. Наконец, все, что осталось, обменивается на p.

...