Oracle 10g新特性——正则表达式(转)
2006-12-14 12:41
411 查看
Oracle 10g新特性——正则表达式
作者: fuyuncat来源: www.HelloDBA.com
在进行查询时,有时候需要按照一定的特殊规则来查找某个字符串,比如,你可能需要查询第三位为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 |
相关文章推荐
- oracle 10g R2 新特性 TDE
- Oracle 10g Scheduler 特性
- Oracle 10g Scheduler 特性
- Oracle 10G 新特性——ADDM和查询优化建议器
- Oracle 10g特性之虚拟专用数据库
- Oracle 数据库 10g:为 DBA 提供的最重要的 20 个特性 - 18.ADDM 和 SQL Tuning Advisor
- Oracle 10g最佳20个新特性(3)
- Oracle 10g新特性——代码混淆,存储过程加密
- Oracle 10g 特性: 通过备份实现可传输表空间
- Oracle 10g的新特性flashback
- Oracle 10g 闪回查询特性的增强
- oracle 10g R2 新特性 TDE
- oracle 10g在线重定义新特性——关联对象自动重命名(一)
- Oracle 10G 新特性——ADDM和查询优化建议器
- Oracle 10g Scheduler 特性
- Oracle 11g新增not null的字段比10g快--新特性
- Oracle 10G 新特性——RMAN
- Oracle 10g特性之虚拟专用数据库
- [转]Oracle 10G 新特性——闪回表
- [Oracle] Oracle 10G 新特性简介