首页 > 代码库 > Oracle字符函数
Oracle字符函数
CHR,ASCII
语法: CHR(string),ASCII(string)
功能:返回在数据库字符集中与X拥有等价数值的字符。CHR和ASCII是一对反函数。经过CHR转换后的字符再经过ASCII转换又得到了原来的字符。
例子:SELECT ASCII(‘A‘),ASCII(‘a‘),CHR(‘65‘),CHR(‘97‘) FROM dual;
使用位置:过程性语句和SQL语句。
CONCAT
语法: CONCAT(string1,string2)
功能:返回string1,并且在后面连接string2,其作用和”||”一样。
例子:select CONCAT(‘aaa‘,‘bbb‘),‘aaa‘||‘bbb‘ from dual;//这两个结果一样。
使用位置:过程性语句和SQL语句。
INITCAP
语法:INITCAP(string)
功能:返回字符串的每个单词的第一个字母大写而单词中的其他字母小写的string。单词是用.空格或给字母字符进行分隔。不是字母的字符不变动。
例子:select INITCAP(‘aa|aa‘) from dual;//结果是Aa|Aa
使用位置:过程性语句和SQL语句。
LTRIM
语法:LTRIM(string1,string2)
功能:返回删除从左边算起出现在string2中的字符的string1。String2被缺省设置为单个的空格。数据库将扫描string1,从最左边开始。当遇到不在string2中的第一个字符,结果就被返回了。LTRIM的行为方式与RTRIM很相似。
例子:select LTRIM(‘abcdab‘,‘ab‘) from dual;//结果是cdab
select LTRIM(‘baabcdab‘,‘ab‘) from dual;//结果是cdba
select LTRIM(‘dbaabcdab‘,‘ab‘) from dual;//结果是dbaabcdab
使用位置:过程性语句和SQL语句。
REPLACE,TRANSLATE
语法:REPLACE(string,search_str,replace_str),TRANSLATE(string,from_str,to_str)
功能:把string中的所有的子字符串search_str用可选的replace_str替换,如果没有指定replace_str,所有的string中的子字符串search_str都将被删除。REPLACE是TRANSLATE所提供的功能的一个子集。
例子:select REPLACE(‘adfasdadf‘,‘a‘,‘-‘),Translate(‘adfasdadf‘,‘a‘,‘-‘) from dual;//结果都是-df-sd-df
使用位置:过程性语句和SQL语句。
RPAD,LPAD
语法:RPAD(string1,x[,string2]),LPAD(string1,x[,string2])
功能:返回在X 字符长度的位置上插入一个string2中的字符的string1。如果string2的长度要比X字符少,就按照需要进行复制。如果string2多于 X字符,则仅string1前面的X各字符被使用。如果没有指定string2,那么使用空格进行填充。X是使用显示长度可以比字符串的实际长度要长。 RPAD的行为方式与LPAD很相似,除了它是在右边而不是在左边进行填充。
例子:SELECT LPAD(‘liunan86786786786‘,10,‘*‘) 去掉字符长度后左侧填充指定字符,
RPAD(‘liunan‘,10,‘*‘) 去掉字符长度后左侧填充指定字符,
RPAD(LPAD(‘liunan‘,10,‘*‘),14,‘*‘) 搭配使用左右填充
FROM dual;
使用位置:过程性语句和SQL语句。
SUBSTR
语法: SUBSTR(string,a[,b])
功能: 返回从字母为值a开始b个字符长的string的一个子字符串.如果a是0,那么它就被认为从第一个字符开始.如果是正数,返回字符是从左边向右边进行计算的.如果b是负数,那么返回的字符是从string的末尾开始从右向左进行计算的.如果b不存在,那么它将缺省的设置为整个字符串.如果b小于1,那么将返回NULL.如果a或b使用了浮点数,那么该数值将在处理进行以前首先被却为一个整数.
例子:SELECT SUBSTR(‘adfadsfasd‘,4) from dual;//结果是adsfasd
SELECT SUBSTR(‘adfadsfasd‘,-4) from dual;//结果是fasd
使用位置:过程性语句和SQL语句。
UPPER,LOWER
语法: UPPER(string),LOWER(string)
功能: 返回大写的string.不是字母的字符不变.如果string是CHAR数据类型的,那么结果也是CHAR类型的.如果string是VARCHAR2类型的,那么结果也是VARCHAR2类型的.
例子:SELECT UPPER(‘adfa‘),LOWER(‘ADFA‘) FROM dual;
使用位置: 过程性语句和SQL语句。
INSTR,INSTRB
语法: INSTR(string1, string2[a,b]),INSTRB(string1, string2[a,[b]])
功能: 得到在string1中包含string2的位置. string1时从左边开始检查的,开始的位置为a,如果a是一个负数,那么string1是从右边开始进行扫描的.第b次出现的位置将被返回. a和b都缺省设置为1,这将会返回在string1中第一次出现string2的位置.如果string2在a和b的规定下没有找到,那么返回0.位置的计算是相对于string1的开始位置的,不管a和b的取值是多少.
INSTRB 和INSTR相同,只是操作的对参数字符使用的位置的是字节.
例子:select instr(‘abcedfghedfghijk‘,‘edf‘,1,2) from dual;//结果是9
使用位置: 过程性语句和SQL语句。
LENGTH,LENGTHB
语法: LENGTH(string),LENGTHB(string)
功能: 返回string的字节单位的长度.CHAR数值是填充空格类型的,如果string由数据类型CHAR,它的结尾的空格都被计算到字符串长度中间.如果string是NULL,返回结果是NULL,而不是0.
LENGTHB返回以字节为单位的string的长度.对于单字节字符集LENGTHB和LENGTH是一样的.
例子:SELECT LENGTH(‘adsfad‘) FROM DUAL;
使用位置: 过程性语句和SQL语句。
Oracle字符函数