,正则替换,批量替换

求助,正则替换,批量替换本帖最后由 hwhtj 于 2013-05-15 11:21:18 编辑有一身份证加密解密1B2A3@4G5F6E7D8

求助,正则替换,批量替换
本帖最后由 hwhtj 于 2013-05-15 11:21:18 编辑 有一身份证加密解密
1    B
2    A
3    @
4    G
5        F
6    E
7    D
8    K
9    J
0    C
X    +

规则如上,
我写成
加密

replace( replace(replace(replace(replace(replace(replace(replace(replace(replace(replace('sfz','1','B'),'2','A'),'3','@'),'4','G'),'5','F'),'6','E'),'7','D'),'8','K'),'9','J'),'X','+'),'0','C')

解密
replace( replace(replace(replace(replace(replace(replace(replace(replace(replace(replace('sfz','B','1'),'A','2'),'@','3'),'G','4'),'F','5'),'E','6'),'D','7'),'K','8'),'J','9'),'C','0'),'+','X')

这样太SB了,求高手改造
[解决办法]
应该可以直接用translate函数:
select translate('ABCDEFGABC', 'ABCDEFGABC', '1234567123') from dual;