Oracle中的translate函数和replace函数的用法详解

 更新时间:2017年11月20日 09:50:58   投稿:mrr  
translate返回expr,其中from_string中的每个字符的所有出现都被to_string中的相应字符替换,而replace 函数将char中的字符串search_string全部转换为字符串replacement_string。下面给大家分享Oracle中的translate函数和replace函数的用法,一起看看吧

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却没有实现此效果,是因为没有找到#%整体的组合

总结

以上所述是小编给大家介绍的Oracle中的translate函数和replace函数的用法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • oracle横向纵向求和代码实例

    oracle横向纵向求和代码实例

    这篇文章主要介绍了oracle横向纵向求和的相关内容,涉及两个实例,具有一定参考价值。需要的朋友可以了解。
    2017-10-10
  • Oracle安装遇到INS-30131错误的解决方法

    Oracle安装遇到INS-30131错误的解决方法

    这篇文章主要介绍了Oracle安装遇到错误INS-30131的解决方法,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Oracle中3种常用的分页查询方法

    Oracle中3种常用的分页查询方法

    这篇文章主要给大家介绍了关于Oracle中3种常用的分页查询方法,分页查询就是把query到的结果集按页显示,比如一个结果集有1W行,每页按100条数据库,而你获取了第2页的结果集,需要的朋友可以参考下
    2023-09-09
  • Oracle 函数大全

    Oracle 函数大全

    Oracle 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数,其他函数)
    2009-07-07
  • Oracle function函数返回结果集的3种方法

    Oracle function函数返回结果集的3种方法

    工作中常需要经过一段复杂逻辑处理后,得出的一个结果集,所以这篇文章主要给大家介绍了关于Oracle function函数返回结果集的3种方法,需要的朋友可以参考下
    2023-07-07
  • 解决PL/SQL修改Oracle存储过程编译就卡死的问题

    解决PL/SQL修改Oracle存储过程编译就卡死的问题

    这篇文章主要介绍了PL/SQL修改Oracle存储过程编译就卡死,本文给大家分享问题原因及解决方法,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Oracle rac环境的数据库导入操作步骤

    Oracle rac环境的数据库导入操作步骤

    Oracle RAC是一种基于共享存储和共享数据库的集群解决方案,可以将多个 Oracle 数据库实例连接成一个逻辑上的单一数据库,提供高可用性、灵活性和可伸缩性,本文给大家介绍Oracle rac环境的数据库导入操作,感兴趣的朋友一起看看吧
    2023-06-06
  • oracle设置密码复杂度及设置超时退出的功能

    oracle设置密码复杂度及设置超时退出的功能

    我们都知道密码策略加固的参数一般包括密码长度、复杂度检测、最大最小使用时间、过期警报时间、最大登录失败次数以及锁定时间等设置,下面这篇文章主要给大家介绍了关于oracle设置密码复杂度及设置超时退出功能的相关资料,需要的朋友可以参考下
    2022-06-06
  • Oracle数据库数据迁移完整解决步骤

    Oracle数据库数据迁移完整解决步骤

    我们常常需要对数据进行迁移,迁移到更性能配置更高级的主机OS上、迁移到远程的机房、迁移到不同的平台下,这篇文章主要给大家介绍了关于Oracle数据库数据迁移的相关资料,需要的朋友可以参考下
    2024-02-02
  • Oracle内存分配不足的过程解析(业务干挂数据库)

    Oracle内存分配不足的过程解析(业务干挂数据库)

    本文介绍了Oracle数据库内存分配不足的问题,原因主要是业务剧增导致的内存不足,通过分析AAS负载、等待事件、transactions和阻塞情况,发现PGA内存出现了严重抖动,感兴趣的朋友一起看看吧
    2025-02-02

最新评论