Oracle内置了一系列函数供用户使用,本文简要介绍一些常用的字符函数。
一、Length(String)
Length函数返回字符串的长度,例如:
二、Substr(String,m,n)和Instr(String1,String2,n)
Substr用于截取字符串的一部分,例如:Substr('ABCDEFG',2,3)返回'BCD',从'ABCDEFG'的第二个字符B开始,截取三个字符,得到'BCD'。
Instr用于查找字符串2在字符串1出现的位置,例如:Instr('ABCDEFG','D',2),从'ABCDEFG'的第2个字符开始数,'D'出现在第3位,因此返回3。如果
Substr和Instr的一个典型应用,截取逗号前的字符串:
三、Concat和
Concat(String1,String2)是各个数据库通用的连接字符串函数,可以将两个字符串连接起来。
而可以连接多个字符串,是属于Oracle专有的函数(操作符)。
四、Replace(String,i,j)
Replace(String,i,j)函数将String中的子字符串i替换为j,例如:
五、Ltrim(String,i)、Rtrim(String,i)、Trim(String,i)
这三个函数分别是从左侧、从右侧和从两侧,在String字符串中删除子字符串i中的每一个字符,直到遇到第一个不属于子字符串i的字符为止。以Ltrim为例:
在示例1和2中,The easy way,从左开始,分别剔除T和Th,遇到第一个不是T或Th的字符则停止。
而在示例3中,The easy way,从左开始,要剔除T、h、e和空格,直到遇到a才停止。
在示例4中,省略了i参数,那么默认只去掉左侧的空格,遇到T则停止。
Rtrim和Trim也是相同的道理。
六、Lpad(String,n,i)、Rpad(String,n,i)
与Ltrim和Rtrim相反,Lpad和Rpad是用i来补全到n位。以Rpad为例:
在示例1中,HAHA用*在右侧补全到10位。
在示例2中,HAHA被截取到前3位。
在示例3中,省略了i参数,默认用空格补全到10位。
七、总结
Oracle的内置字符函数还有很多,这里只介绍了很少的一部分,另外还有Upper、Lower、Initcap、Translate、Chr、to_Char等等,还有正则系列处理函数。
在处理字符串时,可以优先考虑有没有内置函数可以实现想要的功能。如果没有,可以在网上搜索有没有别人写好的可以用。实在没有,自己写吧。
领取专属 10元无门槛券
私享最新 技术干货