需要加密Teradata SQL查询中的数据

时间:2019-05-07 08:57:04

标签: teradata

我需要使用SQL查询或存储过程对teradata中的数据进行加密。
我在以下示例中有数据:

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

所以我想以以下格式输出

aaadddpddpp
aaappppddddaapa
aaapdd

所以我们要用a替换字符,用d替换数字,用p替换特殊字符。

我们非常感谢您的帮助。

1 个答案:

答案 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