SQL> select translate('abc3243dbc','abc','efg') col from dual;
COL
----------
efg3243dfg
SQL> select replace('abc3243dbc','abc','efg') col from dual;
COL
----------
efg3243dbc
从上面的sql可以看出,replace函数是将整个字符abc替换为efg,而translate是将a替换为e,b替换为f,c替换为g。下面例举translate的其它几种情况
SQL> select translate('abc132fdsf','abcdefg','gfedcba') from dual;
TRANSLATE(
----------
gfe132bdsb
--指定的被替换的字符如果后面没有指定任何字符,则被替换为空,如下面的defg四个字符都将被替换为空字符。
SQL> select translate('abc132fdsf','abcdefg','gfe') from dual;
TRANSLA
-------
gfe132s
--提取字符串中的字母,数字都被过滤,如下:
SQL> select translate('abc132fdsf','0123456789',' ') from dual;
TRANSLA
-------
abcfdsf
或按以下方式
SQL> select translate('abc132fdsf','#0123456789','#') from dual;
TRANSLA
-------
abcfdsf
--提取字符串中的数字,字母都被过滤,如下:
SQL> select translate('abc132fdsf','abcdefghigklmnopqrstuvwxyz',' ') from dual;
TRAN
----
132来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21251711/viewspace-1020091/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21251711/viewspace-1020091/