Oracle中的translate函数和replace函数是什么意思?
翻译函数语法:
translate(expr, from_strimg, to_string)
简介:
translate 返回 expr,其中 from_string 中每个字符的所有出现都被 to_string 中相应的字符替换。 expr 中不在 from_string 中的字符将不会被替换。如果 expr 是字符串,则必须将其放在单引号中。 from_string 的参数可以包含比 to_string 更多的字符。在这种情况下,from_string 末尾的多余字符在 to_string 中没有对应的字符。如果这些额外的字符出现在字符中,它们将从返回值中删除。
你不能t 使用 to_string 的空字符串从返回值中删除 from_string 中的所有字符。 Oracle 数据库将空字符串解释为 null,如果该函数有空参数,则返回 null。
translate提供了replace功能相关的功能。替换可让您将一个字符串替换为另一个字符串,以及删除字符串。翻译允许您在一次操作中进行多个单字符、一对一的替换。
该函数不直接支持CLOB数据。但是,CLOB 可以作为带有隐式数据转换的参数进行传递。
示例:
以下语句将句子转换为下划线分隔的字符串。 from_string 包含四个字符:井号、美元符号、空格、星号。 to_string仅包含一个@符号和两个下划线。这使得 from_string 中的第四个字符没有相应的替换,因此星号将从返回值中删除。
SELECT TRANSLATE('itmyhome#163.com$is my* email', '#$ *', '@__') fromdual----------itmyhome@ 163.com_is_my_email
替换函数
语法:
< code>REPLACE(char, search_string,replacement_string)
用法:
将 char 中的所有字符串 search_string 转换为字符串 replacement_string。
示例:
SQL> select REPLACE('fgsgswsgs', 'fk' ,'j') 返回值来自双重;返回值--------- fgsgswsgs SQL> select REPLACE('fgsgswsgs', 'sg' ,'eeerrrttt') return value from Dual;返回值---------- ------------ fgeeerrrtttsweeerrrttts
分析:
中第一个例子中,'fgsgswsgs'中没有'fk'匹配的字符串,
所以返回值仍然是'fgsgswsgs';
第二个例子中,所有字符串' 'fgsgswsgs' 中的 sg' 转换为 'eeerrrttt'。
总结:总结一下,替换和翻译是两种替换功能,
但replace适用于字符串,而translate适用于单个字符。
函数区别
select translate('itmyhome#163%com' , '#%', '@.') from Dual;选择替换('itmyhome#163%com', '#%', '@.') from Dual;-------- -itmyhome@163 .comitmyhome#163%com
上面的translate函数将#替换为@,%替换为.
但是replace并没有达到这个效果,因为没有找到#%整体组合
以上就是小编给大家分享的关于Oracle中translate函数和replace函数的含义。如果你正好有类似的疑惑,不妨参考上面的分析来了解一下。如果您想了解更多相关知识,请关注行业资讯频道。
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > Oracle中的translate函数和replace函数是什么意思?