translate与replace函数怎么在Oracle中使用

64次阅读
没有评论

共计 1585 个字符,预计需要花费 4 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章给大家介绍 translate 与 replace 函数怎么在 Oracle 中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

translate 函数语法:

translate(expr, from_strimg, to_string)

简介:

translate 返回 expr,其中 from_string 中的每个字符的所有出现都被 to_string 中的相应字符替换。expr 中不在 from_string 中的字符不会被替换。如果 expr 是一个字符串,那么你必须把它放在单引号中。from_string 的参数可以包含比 to_string 更多的字符。在这种情况下,from_string 末尾的多余字符在 to_string 中没有对应的字符。如果这些额外的字符出现在字符中,那么它们将从返回值中移除。

您不能使用 to_string 的空字符串从返回值中删除 from_string 中的所有字符。Oracle 数据库将空字符串解释为空,如果此函数具有空参数,则返回 null。

translate 提供了与 replace 函数相关的功能。replace 让你用一个字符串替换另一个字符串,以及删除字符串。translate 允许您在一个操作中进行多个单字符,一对一的替换。

该函数不直接支持 CLOB 数据。但是,CLOB 可以通过隐式数据转换作为参数传递。

例子:

以下语句将一句话转换为具有下划线分隔的字符串。from_string 包含四个字符:井号,美元符号,空格,星号。to_string 只包含一个 @符号和两个下划线。这使得 from_string 中的第四个字符没有相应的替换,所以星号从返回的值中删除。

SELECT TRANSLATE(itmyhome#163.com$is my* email ,  #$ * ,  @__) from dual
----------
itmyhome@163.com_is_my_email

replace 函数

语法:

REPLACE(char, search_string,replacement_string)

用法:

将 char 中的字符串 search_string 全部转换为字符串 replacement_string。

举例:

SQL  select REPLACE(fgsgswsgs ,  fk  , j)  返回值  from dual;
  返回值
 ---------
 fgsgswsgs
 SQL  select REPLACE(fgsgswsgs ,  sg  , eeerrrttt)  返回值  from dual;
  返回值
 -----------------------
 fgeeerrrtttsweeerrrttts

分析:

第一个例子中由于 fgsgswsgs 中没有与 fk 匹配的字符串,

  故返回值仍然是 fgsgswsgs;

  第二个例子中将 fgsgswsgs 中的字符串 sg 全部转换为 eeerrrttt。

总结:综上所述,replace 与 translate 都是替代函数,

  只不过 replace 针对的是字符串,而 translate 针对的是单个字符。

和 replace 函数的区别

select translate(itmyhome#163%com ,  #% ,  @.) from dual;
select replace(itmyhome#163%com ,  #% ,  @.) from dual;
---------
itmyhome@163.com
itmyhome#163%com

上面的 translate 函数是将 #替换为 @,% 替换为.

而 replace 却没有实现此效果,是因为没有找到 #% 整体的组合

关于 translate 与 replace 函数怎么在 Oracle 中使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-16发表,共计1585字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)