在ibatis下匹配特殊手机号码(oracle数据库)
<isNotNull prepend="AND" property="endNumber">
<isNotEmpty property="endNumber">
<isNotNull property="isRuleEndNumber">
<isNotEmpty property="isRuleEndNumber">
<isEqual property="isRuleEndNumber" compareValue="1">
<isEqual property="endNumber" compareValue="-4">
substr(t.UIM_CARD,11,1)!=4
</isEqual>
<isEqual property="endNumber" compareValue="AABAA">
substr(t.UIM_CARD,11,1)=substr(t.UIM_CARD,10,1)
and substr(t.UIM_CARD,8,1)=substr(t.UIM_CARD,7,1)
and substr(t.UIM_CARD,9,1)!=substr(t.UIM_CARD,10,1)
</isEqual>
<isEqual property="endNumber" compareValue="AAA">
substr(t.UIM_CARD,10,1)=substr(t.UIM_CARD,9,1)
and substr(t.UIM_CARD,9,1)=substr(t.UIM_CARD,11,1)
and substr(t.UIM_CARD,9,1)!=substr(t.UIM_CARD,8,1)
</isEqual>
<isEqual property="endNumber" compareValue="ABC">
regexp_like(substr(t.UIM_CARD,9,3),'^(012|123|234|345|456|567|678|789)$$')
and to_number(substr(t.UIM_CARD,8,1))+1!=to_number(substr(t.UIM_CARD,9,1))
</isEqual>
<isEqual property="endNumber" compareValue="AAAA">
regexp_like(substr(t.UIM_CARD,8,4),'^([0-9])\1{3}$$')
</isEqual>
<isEqual property="endNumber" compareValue="ABCD">
regexp_like(substr(t.UIM_CARD,8,4),'^(0123|1234|2345|3456|4567|5678|6789)$$')
</isEqual>
<isEqual property="endNumber" compareValue="AABB">
substr(t.UIM_CARD,10,1)=substr(t.UIM_CARD,11,1)
and substr(t.UIM_CARD,8,1)=substr(t.UIM_CARD,9,1)
and substr(t.UIM_CARD,9,1)!=substr(t.UIM_CARD,10,1)
</isEqual>
<isEqual property="endNumber" compareValue="ABAB">
substr(t.UIM_CARD,8,1)=substr(t.UIM_CARD,10,1)
and substr(t.UIM_CARD,9,1)=substr(t.UIM_CARD,11,1)
and to_number(substr(t.UIM_CARD,10,1))+1=substr(t.UIM_CARD,11,1)
</isEqual>
<isEqual property="endNumber" compareValue="88">
substr(t.UIM_CARD,10,2)='88'
</isEqual>
</isEqual>
</isNotEmpty>
</isNotNull>
<isNotNull property="isRuleEndNumber">
<isNotEmpty property="isRuleEndNumber">
<isEqual property="isRuleEndNumber" compareValue="0">
#endNumber#=substr(t.UIM_CARD,11-length(#endNumber#)+1,length(#endNumber#))
</isEqual>
</isNotEmpty>
</isNotNull>
上面分两部分,一部分按照规则匹配号码,下面部分按照尾数匹配号码.这些代码都是能正常使用的。
以下一些正则表达式来自网上,本人仔细研究测试过,能在JAVA代码里面使用,但是不能在SQL语句中使用:String s="5678";
System.out.println(s.matches("^[0-9](?:(?<=0)1|(?<=1)2|(?<=2)3|(?<=3)4|(?<=4)5|(?<=5)6|(?<=6)7|(?<=7)8|(?<=8)9){3}$"));
String s2="11";
System.out.println(s2.matches("^([0-9])\\1$"));
String pwd ="666";
String regx = "^(\\d)\\1{2}$";以上都返回true String aabb="1122";
System.out.println(aabb.matches("^([0-9])\\1([0-9])\\2$")); String abab="1212";
System.out.println(abab.matches("^([0-9](?:(?<=0)1|(?<=1)2|(?<=2)3|(?<=3)4|(?<=4)5|(?<=5)6|(?<=6)7|(?<=7)8|(?<=8)9){1})\\1$"));以上也都返回true String s="544354645435";
System.out.println(s.matches("^[^0-9]*$"));这个是false,呵呵。。
在ibatis下匹配特殊手机号码(oracle数据库)的更多相关文章
- Java使用iBatis批量插入数据到Oracle数据库
Java使用iBatis批量插入数据到Oracle数据库 因为我们的数据跨库(mysql,oracle),单独取数据的话需要遍历好多遍,所以就想着先从mysql数据库中取出来的数据然后在oracle数 ...
- Windows 7下通过Excel2007连接Oracle数据库并对表查询
http://blog.csdn.net/pan_tian/article/details/8133668 1. 环境变量的设置 1.1 ORACLE_HOME环境变量的设置,我这里指向了我的Ora ...
- Linux平台下使用rman进行oracle数据库迁移
实验目的:将oracle数据库从一台机器迁移到另外的一台机器(同为linux平台),设置为不同的路径,不同的实例名 源端: ORACLE_BASE=/u01/app/oracle ORACLE ...
- Oracle使用——Linux系统下使用命令实现oracle数据库数据导入
背景 在工作当中,数据库的备份及数据导入是必不可少的操作,在完全无界面的Linux操作系统中,我们应该怎样实现oracle数据库的导入呢 前提 服务器已配置ftp 模拟环境 一台linux应用服务器上 ...
- 在不重装系统的情况下撤底删除oracle数据库及oralce的相关软件
先从控制面板删除oracle的相关应用及数据库, 删除系统变量 ORACLE_OEM_CLASSPATH=%JAVA_HOME%\lib\ext\access-bridge-64.jar;%JAVA_ ...
- windows 10 下使用Navicat for oracle 数据库还原
一.前期准备 1.安装windows 10系统 2.安装oracle 11g 数据库 3.安装PLsql(也不需要) 4.安装sqlplus(这个必须有) 5.使用下面这个东西新建数据库(不懂创建的话 ...
- ups机制下停电提前关闭oracle数据库
思路:在一个受ups保护的机器A1上写脚本,几分钟(如半分钟)ping不在ups保护的机器B,如果几次(如5次)ping不同,这时我们认为将要停电,此时脚本执行正常关闭受ups保护的机器上数据库的命令 ...
- Windows系统下做定时任务为Oracle数据库每天自动备份
1.创建备份目录d:\backup, 创建批处理命令Bak.bat,编写备份脚本 ? 1 2 exp user/passwd@orcl DIRECT=Y BUFFER=100000 FILE=D:\b ...
- root用户下使用sqlplus登录Oracle数据库
1.把环境变量添加到root用户的环境变量里面2.执行 chmod -R 6777 /tmp chmod -R 6777 /usr/tmp chmod -R 6 ...
随机推荐
- Just another Robbery(背包)
1079 - Just another Robbery PDF (English) Statistics Forum Time Limit: 4 second(s) Memory Limit: 3 ...
- PHP中用到的一些字符串函数
/*常用的字符串输出函数 * * echo() 输出字符串 * print() 输出一个或多个字符串 * die() 输出一条信息,并退出当前脚本 * printf() ...
- document.execCommand()函数可用参数解析
隐藏在暗处的方法-execCommand() 关键字: javascript document document.execCommand()方法可用来执行很多我们无法实现的操作. execComman ...
- 从开发到部署,使用django创建一个简单可用的个人博客
本文参考于: 简书-Django搭建简易博客教程:http://www.jianshu.com/p/d15188a74104 自强学堂-Django基础教程:http://www.ziqiangxue ...
- Oracle Split 函数
为了让 PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成.REF CURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合在可以返回前,必须进行 ...
- JavaScript学习笔记2-数组对象
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- Nginx阅读笔记(二)之location的用法
两个配置文件 一: server { listen 80; # # 在本机所有ip上监听80,也可以写为192.168.1.202:80,这样的话,就只监听192.168.1.202上的80口 ser ...
- Log4J logger图片
- 基于Qt下移动平台第三方接入-ShareSDK(新浪微博,微信朋友圈等分享登录)
一. ShareSDK简介 ShareSDK是为iOS.Android.WP8的APP提供社会化功能的一个组件,开发者只需10分钟即 可集成到自己的APP中,它不仅支持如QQ.微信.新浪微博.腾讯微博 ...
- XMPP个人信息展示
在现阶段的通信服务中.各种标准都有,因此会出现无法实现相互连通,而XMPP(Extensible Message and presence Protocol)协议的出现.实现了整个及时通信服务协议的互 ...