首页 | 考研 | MBA | 专升本 | 成考 | 自考 | 高考 | 中考 | 出国 | 外语 | 电脑 | 公务员 | 司法 | 财考 | 资格考试 | 论文写作
 
 淘学考试计算机正文

 

Oracle10g新特性——正则表达式
编辑:sunl 时间:2007-11-27 来源:淘学考试网 推荐好友

 

  在进行查询时,有时候需要按照一定的特殊规则来查找某个字符串,比如,你可能需要查询第三位为5-8,最后四位为’8888’的所有电话。在9i之前,你可能需要写一个很复杂的条件:


Select username from t_userinfo
where (phonenumber like ‘135%8888’
or phonenumber like ‘136%8888’
or phonenumber like ‘137%8888’
or phonenumber like ‘138%8888’)
and length(phonenumber) = 13;

  那时就会很羡慕java程序员可以使用一个正则表达式轻松搞定。10g中,再也不需要这么复杂了, oracle也提供了几个正则表达式函数,大大方便了开发人员:REGEXP_LIKE、REGEXP_REPLACE、REGEXP_INSTR、REGEXP_SUBSTR,分别用于模糊匹配、代替、插入、截取字符串。关于正则表达式的规则这就不详细描述了, 可以查相关资料得到。简单举例。以上面例子为例,我们的查询语句可以写成:
SQL> create table t_userinfo (username varchar2(10), phonenumber varchar2(13));
Table created
SQL> insert into t_userinfo values ('zhansan', '13012323434');
1 row inserted
SQL> insert into t_userinfo values ('lisi', '13512348888');
1 row inserted
SQL> insert into t_userinfo values ('wangwu', '13912328888');
1 row inserted
SQL> insert into t_userinfo values ('zhaoliu', '13743218888');
1 row inserted
SQL> insert into t_userinfo values ('sunqi', '1361234888');
1 row inserted
SQL> commit;
Commit complete
SQL> Select username, phonenumber from t_userinfo
2 where REGEXP_LIKE(phonenumber, '13[5-8][0-9][0-9][0-9][0-9]8{4}');
USERNAME PHONENUMBER
---------- -------------

lisi 13512348888
zhaoliu 13743218888

  

 

 

 

 

 

 

 

 

 

 

 相 关 内 容



.

  推荐课程
 
 
 
 
 
 
 最近更新
 综合辅导
 经验技巧
版权信息 - 关于我们 - 联系方式 - 服务承诺 - 客户投诉 - 广告服务 - 网站合作 - 会员服务 - 友情链接 - 站长统计3
1 不良信息
举报中心
文明办网文明上网举报电话:15964542668
举报邮箱:topej@163.com
2 网络110
报警服务
服务热线:15964542668 电子邮件:guoyong@topej.com 服务 QQ:350125289
淘学之家(www.topej.com)旗下网站 ICP注册号:鲁ICP备07016860号