【函数】Oracle的常用字符函数实验展示(一)

Oracle提供了众多实用的字符函数,在众多的字符函数中常用的并不多,精通常用的几个字符函数便可游刃有余。
通过这个小文儿简单演示一下常用字符函数的用法,供参考。

1.实验预备动作
1)创建实验表T
sec@ora10g> create table t (first_name varchar2(15), family_name varchar2(15), alias_name varchar2(15), mark varchar2(15), ascii_num int);

Table created.

2)初始化一条数据
sec@ora10g> insert into t values ('Secooler ', 'HOU', 'sec', 'H', 72);

1 row created.

sec@ora10g> commit;

Commit complete.

sec@ora10g> select * from t;

FIRST_NAME      FAMILY_NAME     ALIAS_NAME      MARK             ASCII_NUM
--------------- --------------- --------------- --------------- ----------
Secooler        HOU             sec             H                       72

2.CHR函数
CHR函数可以得到数值对应的字符。因为我们采用的是ASCII字符集,所以数字“72”对应的字符便是“H”
sec@ora10g> select chr(ASCII_NUM) chr from t;

CHR
----
H

不得不提的ASCII函数,这个函数可以理解是CHR函数的“反函数”,通过ASCII函数可以得到字符的ASCII字符编码。
sec@ora10g> select ascii('H') ascii from t;

     ASCII
----------
        72

sec@ora10g> select ascii(mark) ascii from t;

     ASCII
----------
        72

3.CONCAT函数
CONCAT函数与“||”符号的功能类似,就是将两个字符串联起来。
sec@ora10g> select concat(FIRST_NAME,FAMILY_NAME) "My Name is" from t;

My Name is
------------------------------
Secooler HOU

使用“||”可以实现同样的效果
sec@ora10g> select FIRST_NAME||FAMILY_NAME "My Name is" from t;

My Name is
------------------------------
Secooler HOU

4.INITCAP函数
INITCAP函数从字面上就可以知道他的功能,即将字符串的第一个字母转换为大写字母,其余部分转换为小写字母的形式。无论字符串初始内容是大写还是小写,都会被转换为统一的形式。
sec@ora10g> select initcap(FIRST_NAME) initcap, initcap(FAMILY_NAME) initcap from t;

INITCAP         INITCAP
--------------- ---------------
Secooler        Hou

5.LOWER和UPPER函数
LOWER和UPPER函数类似INITCAP函数,只不过这里的LOWER函数会将字符串全部转换为小写字母,UPPER函数将字符串全部转换为大写字母
1)LOWER函数演示
sec@ora10g> select lower(FIRST_NAME) lower, lower(FAMILY_NAME) lower from t;

LOWER           LOWER
--------------- ---------------
secooler        hou

2)UPPER函数演示
sec@ora10g> select upper(FIRST_NAME) upper, upper(FAMILY_NAME) upper from t;

UPPER           UPPER
--------------- ---------------
SECOOLER        HOU

6.LPAD和RPAD函数
LPAD和RPAD函数可以完成用特定字符填充字符串到指定长度的目的。
1)在FAMILY_NAME左侧填充“$”符号,使整个字符串的长度为10。
sec@ora10g> select lpad(FAMILY_NAME,10,'$') lpad from t;

LPAD
----------------------------------------
$$$$$$$HOU

2)在FAMILY_NAME右侧填充“$”符号,使整个字符串的长度为10。
sec@ora10g> select rpad(FAMILY_NAME,10,'$') rpad from t;

RPAD
----------------------------------------
HOU$$$$$$$

3)混合使用,在FAMILY_NAME的左侧添加三个“#”符号,同时在其后面添加四个“$”符号。
sec@ora10g> select rpad(lpad(FAMILY_NAME,6,'#'),10,'$') "LPAD and RPAD" from t;

LPAD and RPAD
----------------------------------------
###HOU$$$$

4)如果不指定填充的字符,则默认用空格进行填充
sec@ora10g> select lpad(FAMILY_NAME,10) lpad from t;

LPAD
----------------------------------------
       HOU

7.LTRIM和RTRIM函数
LPAD和RPAD函数目的是填充,LTRM和RTRIM函数目的相反,删除对应的内容。
1)删除FIRST_NAME左侧出现的“S”字母
这里为了验证删除“所有”左侧“S”字母,我们再初始化一条前面包含多个S的内容。
sec@ora10g> insert into t(FIRST_NAME) values ('SSSecooler');

1 row created.

sec@ora10g> select FIRST_NAME, ltrim(FIRST_NAME,'S') ltrim from t;

FIRST_NAME      LTRIM
--------------- ---------------
Secooler        ecooler
SSSecooler      ecooler

可见,在FIRST_NAME字段左侧出现的“S”全部被删除了。

2)删除FAMILY_NAME右侧出现的“U”字母
sec@ora10g> select FAMILY_NAME, rtrim(FAMILY_NAME,'U') rtrim from t;

FAMILY_NAME     RTRIM
--------------- ---------------
HOU             HO

同理,RTRIM函数也是会完成删除“所有”字符的目的。这里不再演示。

3)如果LTRIM和RTRIM函数不使用第二个参数,则实现的功能是去除字符串左侧( LTRIM )或右侧( RTRIM )出现的空格,这是比较常用的基本功能。

先介绍这七组字符函数,待续ing……

Good luck.

secooler
09.12.26

-- The End --

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/519536/viewspace-623692/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/519536/viewspace-623692/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值