单行函数 --> Translate
举例,代码如下:
select translate('成龙ABC9TC', 'AC', '12') test from dual;
结果如下:
剔除所有的数字
代码如下
select translate('成龙B12A2BC9T4C', 'a1234567890', 'a') from dual;
这里的 “a” 必须要有,否则数字会被替换为 “a”
剔除所有字母
代码如下:
select translate('成龙12A2BC9T4C',
'1qwertyuioplkjhgfdsazxcvbnm' || upper('1qwertyuioplkjhgfdsazxcvbnm'),
'1') test
from dual;
结果如下:
同样的,这里所有的字母前的 “1” , 也是必须要有的
剔除所有的汉字
代码如下:
select translate(
'adb123你好TUS90中国人',
' '||translate('adb123你好TUS90中国人',
'0123456789abcdefghijklmnopqrstuvwxyz'||upper('abcdefghijklmnopqrstuvwxyz'), ' '),
' '
) test
from dual;
结果如下:
最后,值保留所有汉字
代码如下:
select translate('adb123TUS90中国人asasd123',
' 0123456789abcdefghijklmnopqrstuvwxyz'
||upper('abcdefghijklmnopqrstuvwxyz'),
' ') test
from dual;
执行结果如下:
注意:
根据Translate 函数的特性,我们也可以将此函数用作判断一个字段是否是纯数字,纯字母或纯中文;
只需要将转换前后的字段长度做对比,或者判断替换后长度是否为 0 就可以得到,这里不再赘述了。
在 Oracle 中,也可以使用正则表达式进行判断上述情形,请查看我的其他博客
^ - ^ ...