5.3 字符串函数
字符串函数主要用来处理数据库中的字符串数据。本节将介绍各种字符串函数的功能和用法。
5.3.1 计算字符串长度的函数
LENGTH(str)返回值为字符串的字节长度。
【例5.22】使用LENGTH函数计算字符串长度,输入语句如下:
5.3.2 合并字符串函数CONCAT(s1,s2)
CONCAT(s1,s2)返回结果为连接参数产生的字符串。
【例5.23】使用CONCAT函数连接字符串,输入语句如下:
CONCAT('学习', 'Oracle 12c')返回两个字符串连接后的字符串。
5.3.3 字符串搜索函数INSTR(s,x)
INSTR(s,x)返回x字符在字符串s的位置。
【例5.24】使用INSERT函数进行字符串替代操作,输入语句如下:
字符c位于字符串'hello Oracle'的第10个位置,结果输出为10。
5.3.4 字母大小写转换函数
LOWER(str)可以将字符串str中的字母字符全部转换成小写字母。
【例5.25】使用LOWER函数将字符串中所有字母字符转换为小写,输入语句如下:
由结果可以看到,原来所有字母为大写的,全部转换为小写,如“BEAUTIFUL”,转换之后为“beautiful”。
UPPER(str)可以将字符串str中的字母字符全部转换成大写字母。
【例5.26】使用UPPER函数将字符串中所有字母字符转换为大写,输入语句如下:
由结果可以看到,原来所有字母字符为小写的,全部转换为大写,如“black”,转换之后为“BLACK”。
INITCAP(str)将输入的字符串单词的首字母转换成大写。如果不是两个字母连在一起,则认为是新的单词,例:a_b、a,b、a b,类似前面这些情况,a和b都会转换成大写。
【例5.27】使用INITCAP函数将字符串中首字母转换成大写,输入语句如下:
由结果可以看到,原来每个单词的首字母,全部转换为大写,如“hello”,转换之后为“Hello”。
5.3.5 获取指定长度的字符串的函数substr(s,m,n)
SUBSTR(s,m,n)函数获取指定的字符串。其中参数s代表字符串,m代表截取的位置,n代表截取长度。
【例5.28】使用SUBSTR函数返回字符串中指定的字符,输入语句如下:
当m值为正数时,从左边开始数指定的位置;当m值为负值时,从右边开始取指定位置的字符。
5.3.6 替换字符串的函数REPLACE(s1,s2,s3)
REPLACE(s1,s2,s3)是一个替换字符串的函数。其中参数s1表示搜索的目标字符串,S2表示在目标字符串中要搜索的字符串。s3是可选参数,用它替换被搜索到的字符串,如果该参数不用,表示从s1字符串中删除搜索到的字符串。
【例5.29】使用REPLACE函数对字符串进行替换操作,输入语句如下:
结果看出,第一个替换的情况是字符串“dog”被替换成“cat”,第二个替换的情况是字符串“dog”被删除掉。
5.3.7 删除字符串首尾指定字符的函数LTRIM(s,n)和RTRIM(s,n)
LTRIM(s,n)函数将删除指定的左侧字符,其中s是目标字符串,n是需要查找的字符。如果n不指定,则表示删除左侧的空格。
【例5.30】使用LTRIM函数对字符串进行删除操作,输入语句如下:
结果看出,第一个删除的情况是字符串的“this”字符被删除,第二个删除的情况是字符串左侧的空格被删除掉。
RTRIM(s,n)函数将删除指定的右侧字符,其中s是目标字符串,n是需要查找的字符。如果n不指定,则表示删除右侧的空格。
【例5.31】使用RTRIM函数对字符串进行删除操作,输入语句如下:
结果看出,第一个删除的情况是字符串的“dog”字符被删除,第二个删除的情况是字符串右侧的空格被删除掉。
5.3.8 删除指定字符串的函数TRIM()
TRIM函数将删除指定的前缀或者后缀的字符,默认删除空格。具体的语法格式如下:
其中,LEADING删除trim_source的前缀字符;TRAILING删除trim_source的后缀字符;BOTH删除trim_source的前缀和后缀字符;trim_character删除指定字符,默认删除空格;trim_source指被操作的源字符串。
【例5.32】使用TRIM(s1 FROM s)函数删除字符串中两端指定的字符,输入语句如下:
删除字符串“xyxbxykyx”两端的重复字符“x”,而中间的“x”并不删除,结果为“yxbxyky”。
5.3.9 字符集名称和ID互换函数
NLS_CHARSET_ID(string)函数可以得到字符集名称对应的ID。参数string表示字符集的名称。
【例5.33】使用NLS_CHARSET_ID函数获取ID,输入语句如下:
NLS_CHARSET_NAME(number)函数可以得到字符集ID对应的名称。参数number表示字符集的ID。
【例5.34】使用NLS_CHARSET_NAME函数获取ID,输入语句如下: