oracle函数可以分为基本函数和分析函数两大类,在联机事务处理系统中,基本函数的使用非常多;而在以数据仓库为基础的数据分析中,
除了基本函数,也会用到分析函数。
1.ASCII(c1):c1表示一个字符串,此函数返回c1首字母及特殊字符的ASCII码,其逆函数为CHR().
- 1
- 2
- 3
- 4
- 5
2.CHR(i):i表示一个数字,该函数返回十进制表示的字符.
- 1
- 2
- 3
- 4
3.CONCAT(c1,c2):c1,c2为字符串,此函数将c2连接到c1后面:
示例:
- 1
- 2
- 3
- 4
- 5
当c1为null或‘’时,返回c2的值;当c2为null或‘’时,返回c1的值:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
4.INITCAP(c1)
其中,c1为字符串。该函数将每个单词的首字母大小,其余字母小写反回,单词由空格、控制字符和标点符号限制。示例:
- 1
- 2
- 3
- 4
- 5
5.INSTR(c1,c2[,i[,j]])
c1,c2为字符串,i,j为整数。该函数返回从c1的第i个字符开始,c2在c1中第j次出现的位置。如果搜索不到返回0,;如果i为负数,则从右向左搜索,但是位置计算还是从左到右,i和j默认值都为1.例如:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
6.INSTRB(c1,c2[,i[,j]])
与instr()函数一样,只是这里返回的是字节,对于单字节,INSTRB()的效果等于instr().例如:
- 1
- 2
- 3
- 4
- 5
7.LENGTH(c1)
如果c1为字符串,返回c1的长度,如果c1为null或者‘’返回null.例如:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
8.lENGTHB()
与length()一样,只是返回字节长度。
9.LOWER(c)
返回c的小写字符。
10.LPAD(c1,i,c2)
c1,c2为字符串,i为整数。在c1的左侧用c2字符串补足i长度(这里的补足指的是函数返回的字符串为长度i),c2的默认值为单空格:
- 1
- 2
- 3
- 4
如果i小于c1的长度,那么在c1的基础上截取i的长度:
- 1
- 2
- 3
- 4
- 5
11.LTRIM(c1[,c2])
将c1最左边的字符去掉,使其第一个字符不在c2中,如果没有c2,则c1不会改变(但是会去除左边的空格):
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
12.RPAD(c1,ic2)
c1,c2为字符串,i为整数。在c1的右侧侧用c2字符串补足i长度(这里的补足指的是函数返回的字符串为长度i),c2的默认值为单空格,如果i小于c1的长度,那么在c1的基础上截取i的长度,与LPAD类似。
13.RTRIM(c1[,c2])
将c1最右边的字符去掉,使其第一个字符不在c2中,如果没有c2,则c1不会改变(但是会去除右边的空格),与LTRIM()类似。
14.REPLACE(c1,[,c2,c3])
c1,c2,c3都为字符串,此函数用c3替换c1中的c2,字符级别替换.例如:
- 1
- 2
- 3
- 4
- 5
如果c3为‘’或者null,则被替换为空:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如果c2为‘’或null,则返回c1.
如果在c1中匹配不到c2,则不执行替换,这里要与TRANSLATE()函数做区分。
15.SUBSTR(c,i[,j])
c为字符串,i,j为整数。从c1的第i位开始截取长度为j的字符串,如果j为空,则截取全部。
16SUBSTRB(c,i[,j])
用法与SUBSTR相同,只是i,j以字节计算。
17.SOUNDEX(c1)
返回字符串参数的语音表示形式,相对于比较一些读音相同,但是拼写不同的单词是非常有用的。
计算语音的算法:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Oecle官网解释:
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions148.htm
18.TRANSLATE(c1,c2,c3)
将c1中与c2相同的字符串用c3替换,字符串级别替换。这里需要注意如果在c1中没有匹配到c2,则会根据c2中单个字符跟c1中字符匹配,分别替换:
- 1
- 2
- 3
- 4
- 5
19.TRIM(c1 from c2)
用于从源字符串中截取特定字符串,c1为要截去的字符,c2为源字符串。注意:c1只能是单个字符,该函数常用于去空格。
- 1
- 2
- 3
- 4
- 5
20.UPPER(c)
返回c的大写。
21.NLS_SORT(column_name,’nls_param’)
该函数用于按特定的语言要求进行排序,其中,colum_name为排序的列名,nls_param的格式为‘nls_sort=sort’,排序规则:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
示例:
- 1
使用注意点,供参考
http://www.cnblogs.com/yanrongpi/archive/2008/04/11/1149144.html
22.REGEXP_REPLACE(source_string,pattern[,replace_string[,position[,occurrence[,match_parameter]]]])
该函数为Oracle10g新增函数,它扩展了replace函数的功能,用于按照特定表达式的规则替换字符串,其中参数含义依次是:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
例如:
- 1
- 2
- 3
- 4
- 5
23.REGEXP_SUBSTR(source_string,pattern[,position[,occurrence[,match_parameter]]])
该函数为Oracle10g新增函数,它扩展了substr函数的功能,用于按照特定表达式的规则返回字符串的子串,其中参数含义依次是:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
例如:
转载地址:http://m.blog.youkuaiyun.com/u013306074/article/details/46343691