您的位置:首页 > 数据库 > Oracle

ORACLE常用函数之字符函数

2015-12-09 18:33 375 查看

ORACLE常用函数之字符函数

CONCAT(c1,c2)

功能:连接两个字符串

说明:同:c1||c2

参数:c1,c2 字符型表达式

返回:字符型

示例
select concat('你好','ORACLE')||'!!!!' from dual;


结果:你好ORACLE!!!!

INITCAP(c1)

功能:返回字符串并将字符串的第一个字母变为大写,其它字母小写;

说明

参数:c1字符型表达式

返回:字符型

示例
select initcap('hello') from dual;


结果:Hello

LOWER(c1)/UPPER(c1)

功能:将字符串全部转为大写/小写

说明

参数:c1,字符表达式

返回:字符型

示例:`select upper(‘AaBbCcDd’),lower(‘AaBbCcDd’) from dual;

结果:AABBCCDD aabbccdd

INSTR(C1,C2[,I[,J]])

功能:在一个字符串中搜索指定的字符,返回发现指定的字符的位置;

说明:多字节符(汉字、全角符等),按1个字符计算

参数

C1 被搜索的字符串

C2 希望搜索的字符串

I 搜索的开始位置,默认为1

J 第J次出现的位置,默认为1

返回:数值

示例
select instr('i luv you','uv'),instr('i luv you','u',7,1) from dual;


结果: 4 9

INSTRB(C1,C2[,I[,J]])

功能:在一个字符串中搜索指定的字符,返回发现指定的字符的位置;

说明:多字节符(汉字、全角符等),按2个字符计算

参数

C1 被搜索的字符串

C2 希望搜索的字符串

I 搜索的开始位置,默认为1

J 第J次出现的位置,默认为1

返回:数值

示例
select substr('你好ORACLE!!!',3,6),substrb('你好ORACLE!!!',3,6),substr('你好ORACLE!!!',3) from dual;


结果: ORACLE 好ORAC ORACLE!!!

LENGTH(c1)

功能:返回字符串的长度;

说明:多字节符(汉字、全角符等),按1个字符计算

参数:C1 字符串

返回:数值型

示例
select length('哈哈哈'),length('北京市海锭区'),length('北京TO_CHAR') from dual;


结果

LENGTH(‘哈哈哈’) LENGTH(‘北京市海锭区’) LENGTH(‘北京TO_CHAR’)

3                      6                     9


LENGTHB(c1)

功能:返回字符串的长度;

说明:多字节符(汉字、全角符等),按2个字符计算

参数:C1 字符串

返回:数值型

示例
select lengthb('哈哈哈'),lengthb('北京市海锭区'),lengthb('北京TO_CHAR') from dual;


结果

LENGTHB(‘哈哈哈’) LENGTHB(‘北京市海锭区’) LENGTHB(‘北京TO_CHAR’)

6                      12                     11


LPAD(c1,n[,c2])

功能:在字符串c1的左边用字符串c2填充,直到长度为n时为止

说明

如果c1长度大于n,则返回c1左边n个字符

如果如果c1长度小于n,c2和c1连接后大于n,则返回连接后的右边n个字符

参数

C1 字符串

n 追加后字符总长度

c2 追加字符串,默认为空格

返回:字符型

示例
select lpad('lpad',10,'*') from dual;


结果:******lpad

RPAD(c1,n[,c2])

功能:在字符串c1的右边用字符串c2填充,直到长度为n时为止

说明

如果c1长度大于n,则返回c1左边n个字符

如果如果c1长度小于n,c1和c2连接后大于n,则返回连接后的左边n个字符

如果如果c1长度小于n,c1和c2连接后小于n,则返回c1与多个重复c2连接(总长度>=n)后的左边n个字

参数

C1 字符串

n 追加后字符总长度

c2 追加字符串,默认为空格

返回:字符型

示例
select rpad('rpad',10,'*a') from dual;


结果:rpad*a*a*a

LTRIM(c1,[,c2])

功能:删除c1左边重复出现的字符串c2

说明:如果左边出现多个c2都会去掉

参数

C1 字符串

c2 搜索的字符串,默认为空格

返回:字符型

示例
select LTRIM('ababababab去掉左边','ab') from dual;


结果:去掉左边

RTRIM(c1,[,c2])

功能:删除右边重复出现的字符串c2

说明:如果右边出现多个c2都会去掉

参数

C1 字符串

c2 追加字符串,默认为空格

返回:字符型

示例:参考上

TRIM(c1 from c2)

功能:参考LTRIM和RTRIM

REPLACE(c1,c2[,c3])

功能:将c1中出现c2的部分替换为c3

说明

参数

c1 希望被替换的字符或变量

c2 被替换的字符串

c3 要替换的字符串,默认为空(即删除之意,不是空格)

返回:字符型

示例
select replace('i luv you luv','luv','love') from dual;


结果:i love you love

SUBSTR(c1,n1[,n2])

功能:取子字符串

说明:多字节符(汉字、全角符等),按1个字符计算

参数:在字符表达式c1里,从n1开始取n2个字符;若不指定n2,则从第y个字符直到结束的字串

返回:字符型

示例
select substr('你好ORACLE!!!',3,6),substrb('你好ORACLE!!!',3,6),substr('你好ORACLE!!!',3) from dual;


结果: ORACLE 好ORAC ORACLE!!!

SUBSTRB(c1,n1[,n2])

功能:取子字符串

说明:多字节符(汉字、全角符等),按2个字符计算

参数:在字符表达式c1里,从n1开始取n2个字符;若不指定n2,则从第y个字符直到结束的字串

返回:字符型,如果从多字符右边开始,则用空格表示

示例
select substr('你好ORACLE!!!',3,6),substrb('你好ORACLE!!!',4,6),substr('你好ORACLE!!!',3) from dual;


结果: ORACLE ORACL ORACLE!!!

TRANSLATE(c1,c2,c3)

功能:将字符表达式值中,指定字符替换为新字符

说明:多字节符(汉字、全角符等),按1个字符计算

参数

c1 希望被替换的字符或变量

c2 查询原始的字符集

c3 替换新的字符集,将c2对应顺序字符,替换为c3对应顺序字符

如果c3长度大于c2,则c3长出后面的字符无效

如果c3长度小于c2,则c2长出后面的字符均替换为空(删除)

如果c3长度为0,则返回空字符串。

如果c2里字符重复,按首次位置为替换依据

返回:字符型

示例

`select TRANSLATE(‘he love you’,’he’,’i’),

TRANSLATE(‘重庆的人’,’重庆的’,’上海男’),

TRANSLATE(‘重庆的人’,’重庆的重庆’,’北京男士们’),

TRANSLATE(‘重庆的人’,’重庆的重庆’,’1北京男士们’),

结果:i love you,上海男人,北京男人,1北京人,京男士人
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle