《oracle的常用字符函数说明》由会员分享,可在线阅读,更多相关《oracle的常用字符函数说明(7页珍藏版)》请在金锄头文库上搜索。
1、Oracle提供了众多实用的字符函数,在众多的字符函数中常用的并不多,精通常用的几个字符函数便可游刃有余。通过这个小文儿简单演示一下常用字符函数的用法,供参考。1.实验预备动作1)创建实验表Tsecora10g create table t (first_name varchar2(15), family_name varchar2(15), alias_name varchar2(15), mark varchar2(15), ascii_num int);Table created.2)初始化一条数据secora10g insert into t values (Secooler , HO
2、U, sec, H, 72);1 row created.secora10g commit;Commit complete.secora10g select * from t;FIRST_NAME FAMILY_NAME ALIAS_NAME MARK ASCII_NUM- - - - -Secooler HOU sec H 722.CHR函数CHR函数可以得到数值对应的字符。因为我们采用的是ASCII字符集,所以数字“72”对应的字符便是“H”。secora10g select chr(ASCII_NUM) chr from t;CHR-H不得不提的ASCII函数,这个函数可以理解是CHR函
3、数的“反函数”,通过ASCII函数可以得到字符的ASCII字符编码。secora10g select ascii(H) ascii from t; ASCII- 72secora10g select ascii(mark) ascii from t; ASCII- 723.CONCAT函数CONCAT函数与“|”符号的功能类似,就是将两个字符串联起来。secora10g select concat(FIRST_NAME,FAMILY_NAME) My Name is from t;My Name is-Secooler HOU使用“|”可以实现同样的效果secora10g select FIR
4、ST_NAME|FAMILY_NAME My Name is from t;My Name is-Secooler HOU4.INITCAP函数INITCAP函数从字面上就可以知道他的功能,即将字符串的第一个字母转换为大写字母,其余部分转换为小写字母的形式。无论字符串初始内容是大写还是小写,都会被转换为统一的形式。secora10g select initcap(FIRST_NAME) initcap, initcap(FAMILY_NAME) initcap from t;INITCAP INITCAP- -Secooler Hou5.LOWER和UPPER函数LOWER和UPPER函数类似
5、INITCAP函数,只不过这里的LOWER函数会将字符串全部转换为小写字母,UPPER函数将字符串全部转换为大写字母1)LOWER函数演示secora10g select lower(FIRST_NAME) lower, lower(FAMILY_NAME) lower from t;LOWER LOWER- -secooler hou2)UPPER函数演示secora10g select upper(FIRST_NAME) upper, upper(FAMILY_NAME) upper from t;UPPER UPPER- -SECOOLER HOU6.LPAD和RPAD函数LPAD和RP
6、AD函数可以完成用特定字符填充字符串到指定长度的目的。1)在FAMILY_NAME左侧填充“$”符号,使整个字符串的长度为10。secora10g select lpad(FAMILY_NAME,10,$) lpad from t;LPAD-$HOU2)在FAMILY_NAME右侧填充“$”符号,使整个字符串的长度为10。secora10g select rpad(FAMILY_NAME,10,$) rpad from t;RPAD-HOU$3)混合使用,在FAMILY_NAME的左侧添加三个“#”符号,同时在其后面添加四个“$”符号。secora10g select rpad(lpad(FA
7、MILY_NAME,6,#),10,$) LPAD and RPAD from t;LPAD and RPAD-#HOU$4)如果不指定填充的字符,则默认用空格进行填充secora10g select lpad(FAMILY_NAME,10) lpad from t;LPAD- HOU7.LTRIM和RTRIM函数LPAD和RPAD函数目的是填充,LTRM和RTRIM函数目的相反,删除对应的内容。1)删除FIRST_NAME左侧出现的“S”字母这里为了验证删除“所有”左侧“S”字母,我们再初始化一条前面包含多个S的内容。secora10g insert into t(FIRST_NAME) v
8、alues (SSSecooler);1 row created.secora10g select FIRST_NAME, ltrim(FIRST_NAME,S) ltrim from t;FIRST_NAME LTRIM- -Secooler ecoolerSSSecooler ecooler可见,在FIRST_NAME字段左侧出现的“S”全部被删除了。2)删除FAMILY_NAME右侧出现的“U”字母secora10g select FAMILY_NAME, rtrim(FAMILY_NAME,U) rtrim from t;FAMILY_NAME RTRIM- -HOU HO同理,RTR
9、IM函数也是会完成删除“所有”字符的目的。这里不再演示。3)如果LTRIM和RTRIM函数不使用第二个参数,则实现的功能是去除字符串左侧(LTRIM)或右侧(RTRIM)出现的空格,这是比较常用的基本功能。【函数】Oracle的常用字符函数实验展示(二)8.REPLACE函数REPLACE函数完成替换功能,如果不指定替换的内容将会删除与之匹配的内容。1)删除FIRST_NAME字段中出现的“cool”字符串secora10g select FIRST_NAME, replace(FIRST_NAME,cool) replace from t;FIRST_NAME REPLACE- -Secoo
10、ler Seer此时Secooler已经变成了“先知”(Seer):)。2)将FIRST_NAME字段中的“cool”替换为“*”符号secora10g select FIRST_NAME, replace(FIRST_NAME,cool,*) replace from t;FIRST_NAME REPLACE- -Secooler Se*er9.SUBSTR函数使用SUBSTR函数可以得到字符串的一个子串。1)得到FIRST_NAME字段的前三个字符secora10g select FIRST_NAME, substr(FIRST_NAME,1,3) substr from t;FIRST_
11、NAME SUBSTR- -Secooler Sec2)从FIRST_NAME字段的第三个字符开始连续取4个字符。secora10g select FIRST_NAME, substr(FIRST_NAME,3,4) substr from t;FIRST_NAME SUBSTR- -Secooler cool的确很“cool”吧:)3)从相反的方向获得子字符串下面的SQL中substr函数的第二个参数是“-6”,表示从字符串后面向前数第6个字符开始,再读取4个字符。这里构造的结构和上面的结果相同,可谓殊途同归是也。这里之所以使用到了rtrim函数,是为了消除字符串尾部空格对结果的影响。secora10g select FIRST_NAME, substr(rtrim(FIRST_NAME),-6,4) substr from t;FIRST_NAME SUBSTR- -Secooler cool4)SUBSTR函数的第三个参数可以为空,表示从截取开始的位置一直到字符串尾部的意思。secora10g select FIRST_NAME, substr(FIRST_NAME,3) substr from t;FIRST_NAME SUBSTR- -Secooler cooler10.T