Oracle 函数_Translate

本文详细探讨了Oracle数据库中Translate函数的应用,包括字符替换的基本用法及针对不同字符集(如汉字)时的行为特点,并展示了如何利用该函数去除字符串中的指定字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Translate函数的的探讨


Translate主要是用来做字符串的替换的,对于字母和数字来说,是一个字符替换一个字符
如:
下面的语句会把 'f' 替换成 'v' 替换成 'g'
select Translate('fasdbfasegafs','fa','vg' ) value   from dual;

VALUE
-------------
vgsdbvgseggvs

但是对于汉字来说,则会根据不同的情况而有点不同

select Translate('fasdbfasegas','fa','我' ) value from dual;

VALUE
-----------
我sdb我segs


select Translate('fasdbfasegafs','fa','你' ) value from dual;

VALUE
-------------
你sdb你seg你s

第一个语句的fa替换成'我',由于最后面的a对应不到而用空代替
现在看第二个语句,前面的fa替换成了'你'没有问题,但是后面的af居然也是一样的替换?!

另外:
select Translate('fasdbfasegafs','fa','你我' ) value from dual;

VALUE
-------------------
你我sdb你我seg我你s

f被替换成'你'而a被替换成了'我'

可见oracle会根据替换字符串的不同而进行'自适应'

另外Translate还有一个小功能:
select trim(Translate('fasdbfa12vr2segas','abcdefghijklmnopqrstuvwxyz',' ')) value from dual;

VALUE
-----
122

可以求出一个字符串中的数字
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值