Oracle中的Like操作符使用"_"和"%"作为通配符,使用就像这样:

Java代码

SELECT name FROM test_like WHERE name like "_a%";

即匹配test_like表name列中第2个字母是a的所有行。但是注意,Oracle匹配时区分大小写的。也就是说上面的查询时无法查询到name="SAas"这行的。

Oracle10g中提供的正则表达式功能可以很好的解决这个问题,当然这不是使用正则表达式函数的唯一优点,实际上它比Like操作符强大的多。

正则表达式的语法就不用多说了,现在大多数语言都支持正则表达式了。

下面主要介绍下Oracle中正表达式函数REGEXP_LIKE的使用:

Sql代码

REGEXP_LIKE(x, pattern [, match_option])

当源字符串x匹配正则表达式pattern时,返回true。可以使用match_option修改默认匹配选项,该参数可以被设置为:

- "c", 说明在进行匹配时区分大小写(默认选项)

- "i", 说明在进行匹配时不区分大小写

- "n"   允许使用可以匹配任意字符的操作符(通常是".")

- "m", 将x作为一个包含多行的字符串

举个例子:

Sql代码

SELECT * FROM test_reg WHERE REGEXP_LIKE(name, "(a)\1", "i");

上面的SQL语句匹配test_reg表中name列含有两个连续字符"a"(不区分大小写)的行,如name="SaAs"。此外,这里我们还使用了正则表达式中的后引用语法——\n表示重复n次上次匹配的内容,此处(a)\1表示匹配两个连续的字符"a"。

需要注意的是,后引用必须使用双括号,否则会出现如下结果:

Sql代码

SELECT * FROM test_reg WHERE REGEXP_LIKE(name, "a\1", "i")

ORA-12727: 正则表达式中的后向引用无效

最后一点,不要混淆LIKE操作符的通配符和正则表达式的语法,也就是说不要再正则表达式中使用LIKE操作符中的通配符,如果这样做会得到未知的结果,因为"_"和"%"会被正则表达式当做普通字符进行匹配。

比如下面这条SQL想要得到name="SaAs"这条记录,但实际的查询结果为空。

Sql代码

SQL> SELECT * FROM test_reg WHERE REGEXP_LIKE(name, "^_(a)\1", "i");

NAME

----------

实际应该使用:

Sql代码

SQL> SELECT * FROM test_reg WHERE REGEXP_LIKE(name, "^.(a)\1", "i");

NAME

----------

SaAs

oracle正则判断身份证号,Oracle中查询使用正则表达式函数REGEXP相关推荐

  1. oracle正则判断数字开头,oracle 正则表达式判断是否数字

    oracle 正则表达式判断是否数字 发布时间:2018-12-13 10:35, 浏览次数:375 , 标签: oracle 正则表达式 ORACLE中的支持正则表达式的函数主要有下面四个: 1,R ...

  2. oracle正则判断纯数字,oracle 判断字段是否为是数字 regexp_like用法 正则表达式

    oracle 判断字段是否为是数字regexp_like用法正则表达式ORACLT TNND 2010-07-15 10:12:28 阅读303 评论0 字号:大中小订阅 /* ORACLE中的支持正 ...

  3. java 正则判断身份证号

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...

  4. oracle 11g circuits 参数,递归:在 Oracle Database 11g 第 2 版中查询层次结构数据

    开发人员:SQL 递归: 在 Oracle Database 11g 第 2 版中查询层次结构数据的快速入门 作者:Tim Hartley 2010 年 2 月发表 递归数据库处理,也称为材料清单 或 ...

  5. python身份证号掩盖出生日期的代码_利用Python制作全国身份证号验证及查询系统!就问你吊不吊!...

    大家好哇,又是一个愉快的周末,今天本鸟给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性别及 ...

  6. python身份证验证系统_利用Python制作全国身份证号验证及查询系统!就问你吊不吊!...

    大家好哇,又是一个愉快的周末,今天本鸟给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性别及 ...

  7. 判断身份证号是否合法;验证城市区号,生日

    判断身份证号是否合法 ; 验证城市区号 , 生日 直接上代码 /*** 判断身份证号是否合法* 验证城市区号;生日* Date:2018年12月29日 * @author D2yml**/ publi ...

  8. 用python制作全国身份证号验证及查询系统

    ​ 大家好哇,又是一个愉快的周末,今天本鸟给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性 ...

  9. 【趣味案例】用python制作全国身份证号验证及查询系统

    今天给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性别及发证地查询,看起来是不是很高大上, ...

最新文章

  1. 原创译文 | 通过设计让学习变轻松
  2. UNITY Destroy()和DestroyImadiate()都不会立即释放对象内存
  3. Deep GSP : 面向多目标优化的工业界广告智能拍卖机制
  4. LCP 07. 传递信息
  5. 基于依存句法分析的资金账户交易画像
  6. android sdk集合 下载,Android SDK下载列表(含海内下载)-下
  7. MC9S12XEP100 CAN通信配置
  8. qunee for html5,Qunee for HTML5(一)
  9. 物联网——射频识别技术的应用
  10. linux系统下安装搜狗输入法,搜狗拼音输入法 For Linux安装方法全程图解
  11. 域内计算机桌面背景怎么改,如何将域内用户设置的各种桌面背景都去掉? | 学步园...
  12. 微信 html avi视频无法播放,是真的,微信可以发送高清.avi 了
  13. SQL查询语句多表联查、三表关联查询
  14. Android根据语言适配货币符,ios – 使用NSLocale根据国家/地区代码或国家/地区名称获取货币符号...
  15. Adobe Premiere基础特效(卡点和转场)(四)
  16. 一个无线遥控通讯协议破解实例
  17. 如何停止定时任务@Scheduled
  18. js正则匹配以{开头,以}结尾怎么写?
  19. 关于不定期弹出http://u.9kuku.com/的问题
  20. 新IT云领未来 新华三Navigate 2017开启数字时代新引擎

热门文章

  1. linux shell 字符串作变量名 间接变量引用
  2. linux socket 阻塞非阻塞设置 fcntl,F_GETFL,F_SETFL,flags
  3. linux sar命令 性能监控
  4. gdb调试fork+exec创建的子进程的方法
  5. 数制系统之间的转换总结(各进制的转换)
  6. 编程之美3.3 计算两个字符串的相似度
  7. QEMU和KVM 中断处理过程
  8. ef mysql自动更新_EF Core中怎么实现自动更新实体的属性值到数据库
  9. linux创建mysql视图_MySQL视图基本操作
  10. C Capture Full IE Document