我需要使用SQL查询或存储过程对teradata中的数据进行加密。
我在以下示例中有数据:
May123@34@#
AbC@#$%1234DE#f
zyx@12
所以我想以以下格式输出
aaadddpddpp
aaappppddddaapa
aaapdd
所以我们要用a替换字符,用d替换数字,用p替换特殊字符。
我们非常感谢您的帮助。
答案 0 :(得分:1)
这看起来像数据屏蔽,而不是加密。加密是您可以通过解密撤消的操作,而屏蔽是单向的。
您可以使用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
。