1.instr( sourceString, targetString [, startPosition [,nthAppearance ] ] ) :字符查找函数(按字符计算)
【参数说明】:
- sourceString:源字符串,要在该字符串中进行查找。
- targetString:目标字符串,要在源字符串中查找的字符串 。
- startPosition:检索开始的位置,此参数可选,如果省略则默认为1;注意字符串位置索引从1开始,而非从0开始;如果此参数为正,则从左到右开始检索,如果此参数为负,则从右到左检索。
- nthAppearance:目标字符串出现的次数,此参数可选,如果省略则默认为1,如果为负数则系统会报错。
【功能说明】:
- 若startPosition、nthAppearance均有值:在源字符串sourceString中从位置号startPosition开始查找目标字符串targetString第nthAppearance次出现的位置号。
- 若startPosition有值、nthAppearance没值:在源字符串sourceString中从位置号startPosition开始查找目标字符串targetString第1次出现的位置号。
- 若start_position、nth_appearance均没值:在源字符串sourceString中从位置号1开始查找目标字符串targetString第1次出现的位置号。
注意:若未找到,则返回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开始查找目标字符串targetString第nthAppearance次出现的位置号。
- 若startPosition有值、nthAppearance没值:在源字符串sourceString中从位置号startPosition开始查找目标字符串targetString第1次出现的位置号。
- 若start_position、nth_appearance均没值:在源字符串sourceString中从位置号1开始查找目标字符串targetString第1次出现的位置号。
注意:若未找到,则返回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参数只允许包含一个字符,不支持多字符;如果sourceString和trimCharacter中有任何一个参数为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