Oracle常见函数二字符函数.docx
- 文档编号:9860878
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:13
- 大小:501.40KB
Oracle常见函数二字符函数.docx
《Oracle常见函数二字符函数.docx》由会员分享,可在线阅读,更多相关《Oracle常见函数二字符函数.docx(13页珍藏版)》请在冰豆网上搜索。
Oracle常见函数二字符函数
--常见字符函数
----***特别说明***:
x可以是纯的字符,也可以是字符型表达式
/*
ASCII(x1)返回字符表达式最左端字符的ASCII码值。
note:
在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。
如果最左端是汉字,只取汉字最左半边字符的ASCII码
eg.
*/selectascii('A')A,ascii('a')a,ascii('')space,ascii('示')hzfromdual;
/*
CHR(n1)将ASCII码转换为字符。
n1,为0~255,整数
eg.
*/
selectchr(54740)zhao,chr(65)chr65fromdual;
/*
CONCAT(c1,c2)连接两个字符串,c1,c2字符型表达式
同:
c1||c2
eg.
*/
selectconcat('010-','88888888')||'转23'高乾竞电话fromdual;
/*
INITCAP(c1)返回字符串并将字符串的第一个字母变为大写,其它字母小写;
eg.
*/
selectinitcap('smithabcaBC')uppfromdual;
/*
LOWER(c1)将字符串全部转为小写
eg.
*/
selectlower('AaBbCcDd')AaBbCcDdfromdual;
/*
UPPER(c1)将字符串全部转为大写
eg.
*/
selectupper('AaBbCcDd')upperfromdual;
/*
NLS_INITCAP(x[,y])返回字符串并将字符串的第一个字母变为大写,其它字母小写;
查询数据级的NLS设置:
*/
select*fromnls_database_parameters;
/*
eg.
*/
selectnls_initcap('abcde')"test",nls_initcap('acbde','nls_sort=SCHINESE_PINYIN_M')"test1"fromdual;
/*
NLS_LOWER(x[,y])返回字符串并将字符串的变为小写;
eg.
*/
selectnls_LOWER('abcde')"test",nls_LOWER('acbde','nls_sort=SCHINESE_PINYIN_M')"test1"fromdual;
/*
NLS_upper(x[,y])返回字符串并将字符串的变为大写;
eg.
*/
selectupper('AaBbCcDd')upperfromdual;
/*
LENGTH(c1)返回字符串的字符长度;多字节符(汉字、全角符等),按1个字符计算
**************************************************************************
LENGTHB(c1)返回字符串的字节长度;多字节符(汉字、全角符等),按2个字符计算
eg.
*/
selectlength('Oracle')length,
lengthB('Oracle')lengthB,
length('北京市海锭区')length,
lengthB('北京市海锭区')
fromdual;
/*
INSTR(C1,C2[,I[,J]])在一个字符串中,从第i位开始搜索指定的字符,
返回第j次发现指定的字符的首字符的位置;i,j缺省时默认都为1
note:
多字节符(汉字、全角符等),按1个字符计算
**************************************************************
INSTRB(C1,C2[,I[,J]])在一个字符串中,从第i位开始搜索指定的字符,
返回第j次发现指定的字符的首字符的位置;i,j缺省时默认都为1
note:
多字节符(汉字、全角符等),按多个字节计算
eg.
*/
selectinstr('oracletraning','ra',1,2)instr,
instrb('oracletraning','ra',1,2)instrB,
instr('重庆某软件公司','某',1,1)instr,
instrb('重庆某软件公司','某',1,1)instrB
fromdual;
/*
SUBSTR(c1,n1[,n2])提取子字符串,多字节符(汉字、全角符等),按1个字符计算
****************************************************************************
SUBSTRB(c1,n1[,n2])提取子字符串,多字节符(汉字、全角符等),按2个字符计算
****************************************************************************
分析:
对于字母来说,substr与substrb作用时一样的,
但对于汉字来说,substr是按字来取值,
而substrb是按字节来取值,当所取长度为奇数时,则自动舍弃最后一位字节。
eg.
*/
selectsubstr('今天是个好日子',3,5)instr,substrb('今天是个好日子',3,5)instrBfromdual;
/*
LPAD(c1,n[,c2])在字符串c1的左边用字符串c2填充,直到长度为n时为止
********************************************************************
RPAD(c1,n[,c2])在字符串c1的右边用字符串c2填充,直到长度为n时为止
n追加后字符总长度,c2追加字符串,默认为空格,如果c1长度大于n,则返回c1左边n个字符
如果如果c1长度小于n,c2和c1连接后大于n,则返回连接后的左边n个字符
eg.
*/
selectrpad('gao',10),length(rpad('gao',10))rpad后长度,
lpad('gao',10),length(rpad('gao',10))lpad后长度,
rpad('gao',10,'1234'),
lpad('gao',10,'1234'),
rpad('gao',10,'123456789'),
lpad('gao',10,'123456789')
fromdual;
/*
TRIM(c1fromc2)删除左边和右边出现的字符串,C2删除前字符串,c1删除字符串,默认为空格
**************************************************************************************
LTRIM(c1,[,c2])删除左边出现的字符串,C2删除前字符串,c1删除字符串,默认为空格
**************************************************************************************
RTRIM(c1,[,c2])删除右边出现的字符串,C2删除前字符串,c1删除字符串,默认为空格
eg.
*/
selectTRIM('X'from'XXXgaoqianjingXXXX'),
TRIM('X'from'XXXgaoXXjingXXXX'),
LTRIM('XXXgaoqianjingXXXX','X'),
RTRIM('XXXgaoqianjingXXXX','X')
textfromdual;
/*
REPLACE(c1,c2[,c3])将字符表达式值中,部分相同字符串,替换成新的字符串
c1希望被替换的字符或变量,c2被替换的字符串,c3要替换的字符串,默认为空(即删除之意,不是空格)
c2比c3长,则c2比c3长得部分会被删除;
c2不长于c3,则c2会被c3替换
eg.
*/
selectreplace('heloveyou','he','i'),
replace('heloveyou','he','iii')
fromdual;
/*
TRANSLATE(c1,c2,c3)将字符表达式值中,指定字符替换为新字符,多字节符(汉字、全角符等),按1个字符计算
c1希望被替换的字符或变量,c2查询原始的字符集,c3替换新的字符集,将c2对应顺序字符,替换为c3对应顺序字符
如果c3长度大于c2,则c3长出后面的字符无效
如果c3长度小于c2,则c2长出后面的字符均替换为空(删除)
如果c3长度为0,则返回空字符串。
如果c2里字符重复,按首次位置为替换依据
eg.
*/
selectTRANSLATE('heloveyou','he','i'),
TRANSLATE('重庆的人','重庆的','上海男'),
TRANSLATE('重庆的人','重庆的重庆','北京男士们'),
TRANSLATE('重庆的人','重庆的重庆','1北京男士们'),
TRANSLATE('重庆的人','1重庆的重庆','北京男士们')fromdual;
/*
SOUNDEX(c1)返回字符串参数的语音表示形式
相对于比较一些读音相同,但是拼写不同的单词是非常有用的。
计算语音的算法:
1.保留字符串首字母,但删除a、e、h、i、o、w、y
2.将下表中的数字赋给相对应的字母
(1)1:
b、f、p、v
(2)2:
c、g、k、q、s、x、z
(3)3:
d、t
(4)4:
l
(5)5:
m、n
(6)6:
r
3.如果字符串中存在拥有相同数字的2个以上(包含2个)的字母在一起(例如b和f),或者只有h或w,则删除其他的,只保留1个
4.只返回前4个字节,不够用0填充
eg.
*/
selectsoundex('two'),soundex('too'),soundex('to'),
soundex('cap'),soundex('cup'),
soundex('house'),soundex('horse')fromdual;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 常见 函数 字符
![提示](https://static.bdocx.com/images/bang_tan.gif)