ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle TRANSLATE函数详解

oracle TRANSLATE函数详解

原创 Linux操作系统 作者:perfychi 时间:2013-08-09 13:51:14 0 删除 编辑

TRANSLATE返回将from_string中的每个字符替换为to_string中的相应字符以后的string。

TRANSLATE是REPLACE所提供的功能的一个超集。如果from_string比to_string长,那么在from_string中而不在to_string中的额外字符将从char中被删除,因为它们没有相应的替换字符。to_string不能为空。Oracle将空字符串解释为NULL,并且如果TRANSLATE中的任何参数为NULL,那么结果也是NULL。


举个例子

  select translate('123abc','2dc','4e') from dual;

  因为from_string和to_string的位置是一一对应的,2对应4,d对应e,c没有对应的值,所以c应该会被删除。

所以例子的字符里的2会替换为4,

d因为字符串里没有,所以不作替换,

c由于没有对应的替换字符,所以字符串里的c会被删除

那么可以得出,结果是

143ab


to_string为空的情况:

SQL> select '-' || translate('123ab_c','_','') || '-' from dual;

'-
--
--

如同:

select '-' || NULL ||  '-'  from dual;

'-
--
--


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27042095/viewspace-768136/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-06-06

  • 博文量
    486
  • 访问量
    2683913