Oracle字符型函数详解

1.instr( sourceString, targetString [, startPosition [,nthAppearance ] ] ) :字符查找函数(按字符计算)

参数说明】:

  • sourceString:源字符串,要在该字符串中进行查找。
  • targetString:目标字符串,要在源字符串中查找的字符串 。
  • startPosition:检索开始的位置,此参数可选,如果省略则默认为1;注意字符串位置索引从1开始,而非从0开始;如果此参数为正,则从左到右开始检索,如果此参数为负,则从右到左检索。
  • nthAppearance:目标字符串出现的次数,此参数可选,如果省略则默认为1,如果为负数则系统会报错。

功能说明】:

  • 若startPosition、nthAppearance均有值:在源字符串sourceString中从位置号startPosition开始查找目标字符串targetStringnthAppearance次出现的位置号。
  • 若startPosition有值、nthAppearance没值:在源字符串sourceString中从位置号startPosition开始查找目标字符串targetString1次出现的位置号。
  • 若start_position、nth_appearance均没值:在源字符串sourceString中从位置号1开始查找目标字符串targetString1次出现的位置号。

       注意:若未找到,则返回0;该函数按字符计算

样例展示】:

select instr('instring','n') from dual;        --返回结果:2
select instr('instring','st') from dual;        --返回结果:3
select instr('instring','i',2) from dual;        --返回结果:6
select instr('instring','i',2,1) from dual;        --返回结果:6
select instr('instring','i',2,2) from dual;        --返回结果:0
select instr('instring','i',1,2) from dual;        --返回结果:6
select instr('instring','i',-1,2) from dual;        --返回结果:1
select instr('instring','i',-1,1) from dual;        --返回结果:6                                                        select instr('关系型数据库','型',1,1) from dual;        --返回结果:3

2.instrb( sourceString, targetString [, startPosition [,nthAppearance ] ] ) :字符查找函数(按字节计算)

参数说明】:

  • sourceString:源字符串,要在该字符串中进行查找。
  • targetString:目标字符串,要在源字符串中查找的字符串 。
  • startPosition:检索开始的位置,此参数可选,如果省略则默认为1;注意字符串位置索引从1开始,而非从0开始;如果此参数为正,则从左到右开始检索,如果此参数为负,则从右到左检索。
  • nthAppearance:目标字符串出现的次数,此参数可选,如果省略则默认为1,如果为负数则系统会报错。

功能说明】:

  • 若startPosition、nthAppearance均有值:在源字符串sourceString中从位置号startPosition开始查找目标字符串targetStringnthAppearance次出现的位置号。
  • 若startPosition有值、nthAppearance没值:在源字符串sourceString中从位置号startPosition开始查找目标字符串targetString1次出现的位置号。
  • 若start_position、nth_appearance均没值:在源字符串sourceString中从位置号1开始查找目标字符串targetString1次出现的位置号。

       注意:若未找到,则返回0;该函数按字节计算。

样例展示】:

select instrb('instring','n') from dual;        --返回结果:2
select instrb('instring','st') from dual;        --返回结果:3
select instrb('instring','i',2) from dual;        --返回结果:6
select instrb('instring','i',2,1) from dual;        --返回结果:6
select instrb('instring','i',2,2) from dual;        --返回结果:0
select instrb('instring','i',1,2) from dual;        --返回结果:6
select instrb('instring','i',-1,2) from dual;        --返回结果:1
select instrb('instring','i',-1,1) from dual;        --返回结果:6
select instrb('关系型数据库','型',1,1) from dual;        --返回结果:5

3.substr(string sourceString, int startIndex [, int interceptLength]):字符截取函数(按字符计算)

参数说明】:

  • sourceString:需要截取的字符串。
  • startIndex:截取字符串的开始位置,等于0或1时,都是从左边第一位开始往后截取,等于负数时,从右边第一位开始往后截取。
  • interceptLength:要截取的字符串的长度,此参数可选,若省略,则从第startIndex个字符开始截取后面所有的部分。

功能说明】:

  • 若interceptLength有值:在源字符串sourceString中从位置号startIndex开始截取长度为interceptLength的部分
  • 若interceptLength没值:在源字符串sourceString中从位置号startIndex开始截取后面所有的部分。

样例展示】:

select substr('sourceString',0) value from dual;        --返回结果:sourceString
select substr('sourceString',0,30) value from dual;        --返回结果:sourceString
select substr('sourceString',1,5) value from dual;        --返回结果:sourc
select substr('sourceString',-1) value from dual;        --返回结果:g
select substr('sourceString',-3) value from dual;        --返回结果:ing
select substr('sourceString',-6) value from dual;        --返回结果:String
select substr('sourceString',-1,5) value from dual;        --返回结果:g
select substr('sourceString',-3,5) value from dual;        --返回结果:ing
select substr('sourceString',-5,5) value from dual;        --返回结果:tring
select substr('sourceString',-6,5) value from dual;        --返回结果:Strin                                select substr('关系型数据库',1,5) value from dual;        --返回结果:关系型数据

4.substrb(string sourceString, int startIndex [, int interceptLength]):字符截取函数(按字节计算)

参数说明】:

  • sourceString:需要截取的字符串。
  • startIndex:截取字符串的开始位置,等于0或1时,都是从左边第一位开始往后截取,等于负数时,从右边第一位开始往后截取。
  • interceptLength:要截取的字符串的长度,此参数可选,若省略,则从第startIndex个字节开始截取后面所有的部分。

功能说明】:

  • 若interceptLength有值:在源字符串sourceString中从位置号startIndex开始截取长度为interceptLength的部分
  • 若interceptLength没值:在源字符串sourceString中从位置号startIndex开始截取后面所有的部分。

样例展示】:

select substrb('sourceString',0) value from dual;        --返回结果:sourceString
select substrb('sourceString',0,30) value from dual;        --返回结果:sourceString
select substrb('sourceString',1,5) value from dual;        --返回结果:sourc
select substrb('sourceString',-1) value from dual;        --返回结果:g
select substrb('sourceString',-3) value from dual;        --返回结果:ing
select substrb('sourceString',-6) value from dual;        --返回结果:String
select substrb('sourceString',-1,5) value from dual;        --返回结果:g
select substrb('sourceString',-3,5) value from dual;        --返回结果:ing
select substrb('sourceString',-5,5) value from dual;        --返回结果:tring
select substrb('sourceString',-6,5) value from dual;        --返回结果:Strin
select substrb('关系型数据库',1,4) value from dual;        --返回结果:关系

5.length(sourceString):字符串长度函数(按字符计算)

参数说明】:

  • sourceString:需要计算长度的字符串。

功能说明】:

        返回字符串sourceString的长度。

        注意:sourceString为空,则返回null,而不是0。

样例展示】:

select length('sourceString') from dual;        --返回结果:12
select length('关系型数据库') from dual;        --返回结果:6
select length(' ') from dual;        --返回结果:1
select length('') from dual;        --返回结果:null

6.lengthb(sourceString):字符串长度函数(按字节计算)

参数说明】:

  • sourceString:需要计算长度的字符串。

功能说明】:

        返回字符串sourceString的长度。

        注意:sourceString为空,则返回null,而不是0。

样例展示】:

select lengthb('sourceString') from dual;        --返回结果:12
select lengthb('关系型数据库') from dual;        --返回结果:12
select lengthb(' ') from dual;        --返回结果:1
select lengthb('') from dual;        --返回结果:null

7.lower(sourceString):字符串转小写函数

参数说明】:

  • sourceString:需要转为小写的字符串。

功能说明】:

        返回字符串sourceString中所有字母转换为小写后的结果。

样例展示】:

select lower('sourceString') from dual;        --返回结果:sourcestring
select lower('SOURCESTRING') from dual;        --返回结果:sourcestring
select lower('ABcd字母') from dual;        --返回结果:abcd字母
select lower('abcd字母') from dual;        --返回结果:abcd字母

8.upper(sourceString):字符串转大写函数

参数说明】:

  • sourceString:需要转为大写的字符串。

功能说明】:

        返回字符串sourceString中所有字母转换为大写后的结果。

样例展示】:

select upper('sourceString') from dual;        --返回结果:SOURCESTRING
select upper('sourcestring') from dual;        --返回结果:SOURCESTRING
select upper('ABcd字母') from dual;        --返回结果:ABCD字母
select upper('abcd字母') from dual;        --返回结果:ABCD字母

9.initcap(sourceString):单词首字母转大写函数

参数说明】:

  • sourceString:需要将单词首字母转大写其他字母转小写的字符串。

功能说明】:

        将sourceString每个单词的第一个字母转为大写,其它字母转为小写,sourceString中所有单词通过空格、控制字符、标点符号等其他非字母符号进行分隔。

样例展示】:

select initcap('how are you') from dual;        --返回结果:How Are You
select initcap('苹果,apple,香蕉,banana,土豆,POTATO') from dual;        --返回结果:苹果,Apple,香蕉,Banana,土豆,Potato
select initcap('apple_banana_POTATO') from dual;        --返回结果:Apple_Banana_Potato
select initcap('applebananaPOTATO') from dual;        --返回结果:Applebananapotato

10.lpad(sourceString, paddedLength [ ,padString ]):字符串左填充函数

参数说明】:

  • sourceString:需要被填充的字符串。
  • paddedLength:字符串sourceString被填充之后返回的长度,若该值小于原字符串的长度,则会将字符串sourceString从左到右截取paddedLength个字符。
  • padString用来填充的字符串,是可选参数,若省略该参数,则会在sourceString的左边填充空格。

功能说明】:

        在字符串sourceString左边填充padString字符串使得字符串sourceString达到指定长度padString

样例展示】:

select lpad('sourceString',15,'n') from dual;        --返回结果:nnnsourceString
select lpad('sourceString',10,'n') from dual;        --返回结果:sourceStri
select lpad('sourceString',18,'nm') from dual;        --返回结果:nmnmnmsourceString
select lpad('sourceString',18) from dual;        --返回结果(左边填充空格):      sourceString
select lpad('sourceString',10) from dual;        --返回结果:sourceStri

11.rpad(sourceString, paddedLength [ ,padString ]):字符串右填充函数

参数说明】:

  • sourceString:需要被填充的字符串。
  • paddedLength:字符串sourceString被填充之后返回的长度,若该值小于原字符串的长度,则会将字符串sourceString从左到右截取paddedLength个字符。
  • padString用来填充的字符串,是可选参数,若省略该参数,则会在sourceString的右边填充空格。

功能说明】:

        在字符串sourceString中右边填充padString字符串使得字符串sourceString达到指定长度padString

样例展示】:

select rpad('sourceString',15,'n') from dual;        --返回结果:sourceStringnnn
select rpad('sourceString',10,'n') from dual;        --返回结果:sourceStri
select rpad('sourceString',18,'nm') from dual;        --返回结果:sourceStringnmnmnm
select rpad('sourceString',18) from dual;        --返回结果(右边填充空格):sourceString      
select rpad('sourceString',10) from dual;        --返回结果:sourceStri

12.trim([ { { LEADING | TRAILING | BOTH }[ trimCharacter ]| trimCharacter}
FROM]sourceString):去除指定字符函数

参数说明】:

  • leading:表示从源字符串开头去除指定字符,该参数可选。
  • trailing:表示从源字符串结尾去除指定字符,该参数可选。
  • both:表示从源字符串开头和结尾去除指定字符,该参数可选。
  • trimCharacter:指定需要去除的字符,只能是单个字符,该参数可选。
  • sourceString:需要被修剪的源字符串。

功能说明】:

  • 若指定leading参数:将从源字符串sourceString开头去除所有等于trimCharacter的字符。   
  • 若指定trailing参数:将从源字符串sourceString结尾去除所有等于trimCharacter的字符。  
  • 若指定both参数或者leading、trailing、both三个参数都未指定将从源字符串sourceString的开头和结尾去除所有等于trimCharacter的字符。  
  • 若未指定trimCharacter参数:将从源字符串sourceString中指定位置去除所有的空格。
  • 若只指定sourceString参数:将从源字符串sourceString的开头和结尾去除所有的空格。

        注意这里的trimCharacter参数只允许包含一个字符,不支持多字符;如果sourceStringtrimCharacter中有任何一个参数为null,则该函数返回null

样例展示】:

select trim(leading 's' from 'sourceString') from dual;        --返回结果:ourceString
select trim(trailing 'g' from 'sourceString') from dual;        --返回结果:sourceStrin
select trim(both 's' from 'sourceStrings') from dual;        --返回结果:ourceString
select trim(leading from ' sourceStrings ') from dual;        --返回结果:sourceStrings 
select trim(trailing from ' sourceStrings ') from dual;        --返回结果: sourceStrings
select trim(both from ' sourceStrings ') from dual;        --返回结果:sourceStrings
select trim(both from ' source Strings ') from dual;        --返回结果:source Strings
select trim(' source Strings ') from dual;        --返回结果:source Strings
select trim(trailing null from ' source Strings ') from dual;        --返回结果:空值
select trim(trailing '' from ' source Strings ') from dual;        --返回结果:空值
select trim(leading 's' from null) from dual;        --返回结果:空值
select trim(leading 's' from '') from dual;        --返回结果:空值

13.ltrim(sourceString[,trimString]):去除左边指定字符串函数

参数说明】:

  • sourceString需要被修剪的源字符串。
  • trimString指定需要去除的字符串,可以是单个或多个字符,该参数可选。

功能说明】:

  • 若指定trimString参数:将从源字符串sourceString左边去除trimString中包含的所有字符。
  • 若未指定trimString参数:将从源字符串sourceString左边去除所有空格。

        注意该函数是根据trimString中的包含所有字符逐个地去从源字符串sourceString左边开始进行去除,若在源字符串sourceString中从左边开始一直连续出现trimString中包含的字符,该字符都会被从sourceString中去除掉,直到在sourceString中碰到不是trimString包含的字符才会停止去除动作。

样例展示】:

select ltrim('xyzwww','x') from dual;        --返回结果:yzwww
select ltrim('xyzwww','xyz') from dual;        --返回结果:www
select ltrim('xyzwxy','xyz') from dual;        --返回结果:wxy
select ltrim('xyzzzxywww','xyz') from dual;        --返回结果:www
select ltrim('xyxywww','xyz') from dual;        --返回结果:www
select ltrim('xyzwwxyww','xyz') from dual;        --返回结果:wwxyww

14.rtrim(sourceString[,trimString]):去除右边指定字符串函数

参数说明】:

  • sourceString需要被修剪的源字符串。
  • trimString指定需要去除的字符串,可以是单个或多个字符,该参数可选。

功能说明】:

  • 若指定trimString参数:将从源字符串sourceString右边去除trimString中包含的所有字符。
  • 若未指定trimString参数:将从源字符串sourceString右边去除所有空格。

        注意该函数是根据trimString中的包含所有字符逐个地去从源字符串sourceString右边开始进行去除,若在源字符串sourceString中从右边开始一直连续出现trimString中包含的字符,该字符都会被从sourceString中去除掉,直到在sourceString中碰到不是trimString包含的字符才会停止去除动作。

样例展示】:

select rtrim('wwwxyz','z') from dual;        --返回结果:wwwxy
select rtrim('wwwxyz','xyz') from dual;        --返回结果:www
select rtrim('xywxyz','xyz') from dual;        --返回结果:xyw
select rtrim('wwwxyzzzxy','xyz') from dual;        --返回结果:www
select rtrim('wwwxyxy','xyz') from dual;        --返回结果:www
select rtrim('wwxywwxyz','xyz') from dual;        --返回结果:wwxyww

15.replace(sourceString, searchString [, replaceString]):子字符串替换函数

参数说明】:

  • sourceString需要被执行替换操作的源字符串。
  • searchString :需要被替换掉的子字符串。
  • replaceString:用来替换旧子字符串的新字符串,该参数可选,若该参数为空或省略该参数,则将源字符串sourceString中旧的子字符串searchString替换为空值

功能说明】:

  • 若指定replaceString参数:将源字符串sourceString中旧的子字符串searchString替换为新字符串replaceString。
  • 若未指定replaceString参数:将源字符串sourceString中旧的子字符串searchString替换为空值,意即将searchString去除掉。

样例展示】:

select replace('sourceString','c','d') from dual;        --返回结果:sourdeString
select replace('sourceString','c','') from dual;        --返回结果:soureString
select replace('sourceString','c') from dual;        --返回结果:soureString
select replace('sourceString','ce') from dual;        --返回结果:sourString
select replace('sourceString','ce','c') from dual;        --返回结果:sourcString
select replace('sourceString','ce','xyz') from dual;        --返回结果:sourxyzString

16.concat(sourceString01,sourceString02):字符串连接函数

参数说明】:

  • sourceString01:第一个要连接的字符串
  • sourceString02:第二个要连接的字符串

功能说明】:

        该函数返回字符串sourceString01与字符串sourceString02连接后的结果。

        注意该函数只允许将两个字符串连接在一起如果需要连接两个以上的字符串,则可以将多个该函数进行嵌套调用。

样例展示】:

select concat('AA','BB') from dual;        --返回结果:AABB
select concat(concat('AA','BB'),'CC') from dual;        --返回结果:AABBCC
select concat(concat(concat('C','O'),'N'),'CAT') from dual;        --返回结果:CONCAT

17.translate(sourceString,fromString,toString):子字符替换函数

参数说明】:

  • sourceString:需要进行替换处理的源字符串
  • fromString:需要被替换掉的单个或多个字符。
  • toString:需要用来替换的单个或多个字符。

功能说明】:

        在源字符串sourceString中出现的fromString中的每个字符都会被toString中的相应字符替换,fromString中不在源字符串sourceString中的出现字符不会被替换;fromString可以比toString包含更多字符,此时,fromString末尾的多余字符在toString中没有对应的字符,若fromString末尾的多余字符在源字符串sourceString出现,则fromString末尾的多余字符将会从源字符串sourceString中去除。

        注意:该函数实现的效果是对多个单字符进行一对一的替换;若fromString或toString为空值,则该函数返回null

样例展示】:

select translate('ABC123','123','456') from dual;        --返回结果:ABC456
select translate('ABC123','123','45') from dual;        --返回结果:ABC45
select translate('ABC123','12','456') from dual;        --返回结果:ABC453
select translate('ABC123','D12','456') from dual;        --返回结果:ABC563
select translate('ABC123','123','') from dual;        --返回结果:空值
select translate('ABC123','','') from dual;        --返回结果:空值
select translate('ABC123','','456') from dual;        --返回结果:空值

18.ascii(sourceCharacter):返回字符的数字值函数

参数说明】:

  • sourceCharacter:需要返回数字值代码的单个字符

功能说明】:

        返回指定字符sourceCharacter的数字值代码,若sourceCharacter包含多个字符,则该函数只返回第一个字符的数字值代码。

样例展示】:

select ascii('a') from dual;        --返回结果:97
select ascii('A') from dual;        --返回结果:65
select ascii('aA') from dual;        --返回结果:97
select ascii('Aa') from dual;        --返回结果:65
select ascii('0') from dual;        --返回结果:48
select ascii('9') from dual;        --返回结果:57
select ascii('09') from dual;        --返回结果:48
select ascii('90') from dual;        --返回结果:57

19.chr(sourceNumber):返回数字的字符值函数

参数说明】:

  • sourceNumber:需要返回字符值的数字

功能说明】:

        返回指定数字sourceNumber的字符值。

样例展示】:

select chr(65) from dual;        --返回结果:A
select chr(97) from dual;        --返回结果:a
select chr(48) from dual;        --返回结果:0
select chr(57) from dual;        --返回结果:9

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值