该文章是 PL/SQL基础(3):小专题 系列文章之一。
Oracle中常用的字符串类型有:固定长度(CHAR等)、可变长度(VARCHAR2等)和大对象(CLOB)三类。CHAR为固定的长度字符串,而VARCHAR2是可变长度的字符串,理论长度32,767。对于CHAR类型,如果设置小于CHAR长度的值,则Oracle会自动用空格填充的。CLOB类型长度最大为128TB。
Oracle中常用的字符串操作函数(同样可以用于表名操作)包括:
1.LOWER(string) 将输入的字符串转换成小写
2.UPPER(string) 将输入的字符串转换成大写
3.INITCAP(string) 将输入的字符串每个单词的首字母转换成大写。
4.连接符(||),将两个字符串用||连接起来,除此之外还可以使用Concat函数来连接字符串。例:select CONCAT(City,country) from Table
5.LPAD和RPAD,左填充函数和右填充函数。允许在列的左[右]边填充一组字符。例:RPAD(city,20,'.'),如果ciy的值没有小于长度20的话,则用'.'在右边补齐,补到20个,如果是用空格补齐,看上去就是像右对齐一样。
6.LTRIM,RTRIM和TRIM,他们的作用是从字符串的左边,右边,左右两边删除不需要的字符,默认时删除空格。
格式:RTRIM、LTRIM(字符串,'删除字符集') 第一个参数就是要进行删除的字符,第二个参数是一个字符集。
7.LENGTH 获取字符串有多长,即字符串中有多少个字符。PS:不能对一个使用LONG数据类型的列使用LENGTH之类的函数。
8.SUBSTR(string,start [,count])提取出string一个子集,start开始位置,count提取长度,不指定count时,默认提取到该字符串的尾部。start同时也可以指定为负数,指定为正数的时候是从字符串的起始位置开始算(左边),指定负数时,是从末尾位置算(右边)。PS:负数不能使用于Char数据类型,因为Char是固定长度的,所以将使用空格填充他们的值,直到扩展到列的全长。
9. INSTR(string,set[,occurrence ] ])返回指定的字符串所在的位置。如果指定start,oracle则跳过前面所有字符串到该位置开始搜索,occurence,是强迫instr跳过前几次与字符串匹配,给出下一次匹配的位置,如果occurence指定3,那就是匹配第三次的位置了。例 instr('ABACAAA','A',2,2) 从ABACAAA中匹配A这个字符串,从2个位置开始匹配,匹配第2次A所在的位置。PS:如果set中不止有一个字符而是有几个字符组成的,则INSTR给出该字符集中的第一个字符的位置。
10.Chr和ascii函数在即席查询中很少使用。Chr把数值转换成等价的ascii字符串 例:select chr(70) fromdual。ascii函数执行的结果刚好是相反的,传递给他字符串,它将转换成对应的数值(只转换第一个字符串),如果需要同时转换多个字符串可以使用DUMP函数 DUMP(string)。
其它函数:
11. INSTRB(x)和INSTR类似,只不过返回值是Byte类型。
12. LENGTHB(x)和LENGTH类似,只不过返回值是Byte类型。
13. SUBSTRB(x) 和SUBSTR类似,只不过返回值是Byte类型。
14. NANVL(x,value)同NaN(Not aNumber)比较,如果是,返回value值;如果不是返回x。
15. NLSSORT(x)更改字符串排序的方法,必须用在其它NLS函数之前。
16. NLS_INITCAP(x)同INITCAP(x)一样,只不过使用NLSSORT指定的字符串排序方法。
17. NLS_LOWER(x) 同LOWER (x)一样,只不过使用NLSSORT指定的字符串排序方法。
18. NLS_UPPER(x) 同UPPER (x)一样,只不过使用NLSSORT指定的字符串排序方法。
19. NVL(x,value)用于判断字符串x是否为null并返回指定值value。如果x是null,返回value;如果不是,返回x。
20. NVL2(x,value1,value2) 用于判断字符串x是否为null并返回指定值value1或value2。如果x是null,返回value1;如果不是,返回value2。
21. REPLACE(x,search_string,replace_string)搜索x寻找search_string替换为replace_string。
22. SOUNDEX(x)返回一个包含x发音的字符串。
引用:
http://www.cnblogs.com/Ss_Andy/archive/2011/03/23/1992037.html
原文链接:https://www.f2er.com/oracle/212724.html