1. ASCII
【语法】: ASCII(string)
【说明】: 返回字符表达式最左端字符的ASCII 码值,如果最左端是汉字,只取汉字最左半边字符的ASCII 码
【功能】: 数据库字符集返回string的第一个字节的十进制表示.请注意该函数仍然称作为ASCII.尽管许多字符集不是7位ASCII.CHR和ASCII是互为相反的函数.CHR得到给定字符编码的响应字符. ASCII得到给定字符的字符编码
【互反函数】: chr()
【例子】: selectASCII('abc'),ASCII('a') from dual;
【结果】:
ASCII('abc') | ASCII('a') |
97 | 97 |
2. CHR
【语法】: chr(x)
【说明】: 将ASCII 码转换为字符
【功能】: 返回在数据库字符集中与X拥有等价数值的字符。CHR和ASCII是一对反函数。经过CHR转换后的字符再经过ASCII转换又得到了原来的字符
【互反函数】: ASCII
【例子】: select chr(15313816),ASCII('高') from dual;
【结果】:
chr(15313816) | ASCII('高') |
高 | 15313816 |
3. CONCAT
【语法】: CONCAT(string1,string2)
【说明】: 连接两个字符串
【功能】: 返回string1,并且在后面连接string2。
【例子】: select CONCAT('aa','bb')from dual;
【结果】:
CONCAT('aa','bb') |
aabb |
4. INITCAP
【语法】: INITCAP(string)
【功能】: 返回字符串的每个单词的第一个字母大写而单词中的其他字母小写的string。单词是用空格或给字母数字字符进行分隔。不是字母的字符不变动。
【例子】: select INITCAP('helloword!') from dual;
【结果】:
INITCAP('hello word!') |
Hello Word! |
5. LOWER
【语法】: LOWER(string)
【功能】: 将字符串全部转为小写
【同类】: UPPER()将字符串全部转为大写
【例子】: select lower('AaBbCcDd') from dual;
【结果】:
lower('AaBbCcDd') |
aabbccdd |
6. UPPER
【语法】: UPPER(string)
【功能】: 将字符串全部转为大写
【同类】: LOWER()将字符串全部转为小写
【例子】: select upper('AaBbCcDd') upper fromdual;
【结果】:
upper('AaBbCcDd') |
AABBCCDD |
7. NLS_INITCAP
【语法】: NLS_INITCAP(string[,nlsparams])
【说明】: 返回字符串并将字符串的第一个字母变为大写,其它字母小写;
【功能】: 返回字符串每个单词第一个字母大写而单词中的其他字母小写的string,nlsparams指定了不同于该会话缺省值的不同排序序列。如果不指定参数,则功能和INITCAP相同。Nlsparams可以使用的形式是:‘NLS_SORT=sort’这里sort制订了一个语言排序序列。
【例子】: select nls_initcap('abcde'),nls_initcap('a c h d e','nls_sort= SCHINESE_PINYIN_M') from dual;
【结果】:
nls_initcap('ab cde') | nls_initcap('a c h d e','nls_sort= SCHINESE_PINYIN_M') |
Ab Cde | A C H D E |
8. NLS_LOWER
【语法】: NLS_LOWER(string[,nlsparams])
【说明】: 返回字符串并将字符串的变为小写
【参数】: Nls_param可选,指定排序的方式(nls_sort=)、SCHINESE_RADICAL_M(部首、笔画)、SCHINESE_STROKE_M(笔画、部首)、SCHINESE_PINYIN_M(拼音)
【功能】: 返回字符串中的所有字母都是小写形式的string。不是字母的字符不变。 Nlsparams参数的形式与用途和NLS_INITCAP中的nlsparams参数是相同的。如果nlsparams没有被包含,那么NLS_LOWER所作的处理和LOWER相同。
【例子】: select NLS_LOWER('A B C')from dual;
【结果】:
NLS_LOWER('A B C') |
a b c |
9. NLS_UPPER
【语法】: nls_upper(string[,nlsparams])
【说明】: 返回字符串并将字符串的转换为大写
【功能】: 返回字符串中的所有字母都是大写的形式的string。不是字母的字符不变。nlsparams参数的形式与用途和NLS_INITCAP中的相同。如果没有设定参数,则NLS_UPPER功能和UPPER相同。
【例子】: select NLS_upper('a b c')from dual;
【结果】:
NLS_upper('a b c') |
A B C |
10. INSTR
【语法】: INSTR(string1,string2[a,b])
【说明】: 多字节符(汉字、全角符等),按1个字符计算
【功能】: 得到在string1中包含string2的位置. string1时从左边开始检查的,开始的位置为a,如果a是一个负数,那么string1是从右边开始进行扫描的.第b次出现的位置将被返回. a和b都缺省设置为1,这将会返回在string1中第一次出现string2的位置.如果string2在a和b的规定下没有找到,那么返回0.位置的计算是相对于string1的开始位置的,不管a和b的取值是多少.
【例子】: select INSTR('abc','b') fromdual;
【结果】:
INSTR('abc','b') |
2 |
11. INSTRB
【语法】: INSTRB(string1,string2[a,[b]])
【功能】: 和INSTR相同,只是操作的对参数字符使用的位置的是字节
【例子】: select INSTRB('张三','三'),INSTR('张三','三') from dual;
【结果】:
INSTRB('张三','三') | INSTR('张三','三') |
4 | 2 |
12. LENGTH
【语法】: LENGTH(string)
【说明】: 多字节符(汉字、全角符等),按1个字符计算
【功能】: 返回string的字节单位的长度.CHAR数值是填充空格类型的,如果string由数据类型CHAR,它的结尾的空格都被计算到字符串长度中间.如果string是NULL,返回结果是NULL,而不是0.
【例子】: select LENGTH('张三') from dual;
【结果】:
LENGTH('张三') |
2 |
13. LENGTHB、LENGTHC、LENGTH2、LENGTH4
【语法】: LENGTH(string)
【说明】: Length函数返回字符的个数,使用定义是给定的字符集来计算字符的个数、LENGTHB给出该字符串的byte、LENGTHC使用纯Unicode、LENGTH2使用UCS2、LENGTH4使用UCS4
【功能】: 返回string的字节单位的长度.CHAR数值是填充空格类型的,如果string由数据类型CHAR,它的结尾的空格都被计算到字符串长度中间.如果string是NULL,返回结果是NULL,而不是0.
【例子】: select LENGTH('张三'),LENGTHB('张三'),LENGTHC('张三'),LENGTH2('张三'), LENGTH4('张三') from dual;
【结果】:
LENGTH('张三') | LENGTHB('张三') | LENGTHC('张三') | LENGTH2('张三') | LENGTH4('张三') |
2 | 6 | 2 | 2 | 2 |
14. LPAD
【语法】: LPAD(string1,x[,string2])
【说明】: 在字符串string1的左边用字符串string2填充,直到长度为X时为止
【相似】: RPAD()在列的右边粘贴字符
【相反】: LTRIM() 删除左边出现的字符串
【例子】: select LPAD('abc',6,'*+-=)(*'), LPAD ('abc', 6,'*'), LPAD ('abc', 6) from dual;
【结果】:
LPAD('abc', 6,'*+-=)(*') | LPAD('abc', 6,'*') | LPAD('abc', 6) |
*+-abc | ***abc | abc |
15. RPAD
【语法】: RPAD(string1,x[,string2])
【说明】: 在字符串string1的右边用字符串string2填充,直到长度为x时为止
【功能】 : 返回在X字符长度的位置上插入一个string2中的字符的string1。如果string2的长度要比X字符少,就按照需要进行复制。如果string2多于X字符,则仅string1前面的X各字符被使用。如果没有指定string2,那么使用空格进行填充。X是使用显示长度可以比字符串的实际长度要长。RPAD的行为方式与LPAD很相似,除了它是在右边而不是在左边进行填充。
【相似】: LPAD()在列的左边粘贴字符
【相反】: RTRIM() 删除右边出现的字符串
【例子】: select RPAD('abc',6,'*+-=)(*'),RPAD('abc', 6,'*'), RPAD('abc', 6) from dual;
【结果】:
RPAD('abc', 6,'*+-=)(*') | RPAD('abc', 6,'*') | RPAD('abc', 6) |
abc*+- | abc*** | abc |
16. LTRIM
【语法】: LTRIM(string1,[,string2])
【说明】: 删除左边出现的字符串
【相似】: RTRIM()删除右边出现的字符串
【相反】: LPAD() 在列的左边粘贴字符
【例子】: select RTRIM('***aa***','*'),LTRIM('***aa***', '*') from dual;
【结果】:
RTRIM('***aa***', '*') | LTRIM('***aa***', '*') |
***aa | aa*** |
17. RTRIM
【语法】: RTRIM(string1,[,string2])
【说明】: 删除右边出现的字符串
【功能】: 返回删除从右边算起出现在string1中出现的字符string2. string2被缺省设置为单个的空格.数据库将扫描string1,从右边开始.当遇到不在string2中的第一个字符,结果就被返回了RTRIM的行为方式与LTRIM很相似.
【相似】: LTRIM()删除左边出现的字符串
【相反】: RPAD() 在列的右边粘贴字符
【例子】: select RTRIM('***aa***','*'),LTRIM('***aa***', '*') from dual;
【结果】:
RTRIM('***aa***', '*') | LTRIM('***aa***', '*') |
***aa | aa*** |
18. REPLACE
【语法】: REPLACE(string,search_str[,replace_str])
【说明】: 将字符表达式值中,部分相同字符串,替换成新的字符串
【功能】: 把string中的所有的子字符串search_str用可选的replace_str替换,如果没有指定replace_str,所有的string中的子字符串search_str都将被删除。REPLACE是TRANSLATE所提供的功能的一个子集。
【例子】: select REPLACE('*a*b*c*','*',' '),REPLACE('*a*b*c*', '*') from dual;
【结果】:
REPLACE('*a*b*c*', '*',' ') | REPLACE('*a*b*c*', '*') |
a b c | abc |
19. SOUNDEX
【语法】: SOUNDEX(string)
【说明】: 相对于比较一些读音相同,但是拼写不同的单词是非常有用的。
【功能】: 返回string的声音表示形式.这对于比较两个拼写不同但是发音类似的单词而言很有帮助。
【例子】: selectSOUNDEX('two'),SOUNDEX('too'),soundex('to') from dual;
【结果】:
SOUNDEX('two') | SOUNDEX('too') | SOUNDEX('to') |
T000 | T000 | T000 |
20. SUBSTR
【语法】: SUBSTR(string,a[,b])
【功能】: 取子字符串
【说明】: 多字节符(汉字、全角符等),按1个字符计算
【备注】: 返回从字母为值a开始b个字符长的string的一个子字符串.如果a是0,那么它就被认为从第一个字符开始.如果是正数,返回字符是从左边向右边进行计算的.如果b是负数,那么返回的字符是从string的末尾开始从右向左进行计算的.如果b不存在,那么它将缺省的设置为整个字符串.如果b小于1,那么将返回NULL.如果a或b使用了浮点数,那么该数值将在处理进行以前首先被却为一个整数.
【例子】: select SUBSTR('abcdef',2,3)from dual;
【结果】:
SUBSTR('abcdef',2,3) |
bcd |
21. SUBSTRB
【语法】: SUBSTRB(string,a[,b])
【功能】: 取子字符串
【说明】: 多字节符(汉字、全角符等),按1个字符计算
【例子】: select substr('我手机13012345678',4,11) A, substrb('我手机13012345678',4,11) B, substrb('我手机13012345678',3,11) C from dual;
【结果】:
A | B | C |
13012345678 | 手机13012 | 手机1301 |
22. TRANSLATE
【语法】: TRANSLATE(string,from_str,to_str)
【功能】: 将字符表达式值中,指定字符替换为新字符
【备注】: 返回将所出现的from_str中的每个字符替换为to_str中的相应字符以后的string. TRANSLATE是REPLACE所提供的功能的一个超集.如果from_str比to_str长,那么在from_str中而不在to_str中而外的字符将从string中被删除,因为它们没有相应的替换字符. to_str不能为空.Oracle把空字符串认为是NULL,并且如果TRANSLATE中的任何参数为NULL,那么结果也是NULL.
【例子】: selectTRANSLATE('abcd','bd','*-') A, TRANSLATE('abcd','bd','*') B, TRANSLATE('abcd','db','')C from dual;
【结果】:
A | B | C |
a*c- | a*c |
|
23. TRIM
【语法】: TRIM(c1 from c2)
【功能】: 删除左边和右边出现的字符串
【参数】: C2 删除前字符串 c1 删除字符串,默认为空格
【相似】: LTRIM()删除左边出现的字符串 RTRIM()删除右边出现的字符串
【例子】: select TRIM('X' from 'XXXgao qianjingXXXX') A,TRIM('X' from 'XXXgaoXXjingXXXX') B from dual;
【结果】:
A | B |
gao qian jing | gaoXXjing |