<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数据库)的更多相关文章

  1. Java使用iBatis批量插入数据到Oracle数据库

    Java使用iBatis批量插入数据到Oracle数据库 因为我们的数据跨库(mysql,oracle),单独取数据的话需要遍历好多遍,所以就想着先从mysql数据库中取出来的数据然后在oracle数 ...

  2. Windows 7下通过Excel2007连接Oracle数据库并对表查询

    http://blog.csdn.net/pan_tian/article/details/8133668 1. 环境变量的设置 1.1  ORACLE_HOME环境变量的设置,我这里指向了我的Ora ...

  3. Linux平台下使用rman进行oracle数据库迁移

        实验目的:将oracle数据库从一台机器迁移到另外的一台机器(同为linux平台),设置为不同的路径,不同的实例名 源端: ORACLE_BASE=/u01/app/oracle ORACLE ...

  4. Oracle使用——Linux系统下使用命令实现oracle数据库数据导入

    背景 在工作当中,数据库的备份及数据导入是必不可少的操作,在完全无界面的Linux操作系统中,我们应该怎样实现oracle数据库的导入呢 前提 服务器已配置ftp 模拟环境 一台linux应用服务器上 ...

  5. 在不重装系统的情况下撤底删除oracle数据库及oralce的相关软件

    先从控制面板删除oracle的相关应用及数据库, 删除系统变量 ORACLE_OEM_CLASSPATH=%JAVA_HOME%\lib\ext\access-bridge-64.jar;%JAVA_ ...

  6. windows 10 下使用Navicat for oracle 数据库还原

    一.前期准备 1.安装windows 10系统 2.安装oracle 11g 数据库 3.安装PLsql(也不需要) 4.安装sqlplus(这个必须有) 5.使用下面这个东西新建数据库(不懂创建的话 ...

  7. ups机制下停电提前关闭oracle数据库

    思路:在一个受ups保护的机器A1上写脚本,几分钟(如半分钟)ping不在ups保护的机器B,如果几次(如5次)ping不同,这时我们认为将要停电,此时脚本执行正常关闭受ups保护的机器上数据库的命令 ...

  8. Windows系统下做定时任务为Oracle数据库每天自动备份

    1.创建备份目录d:\backup, 创建批处理命令Bak.bat,编写备份脚本 ? 1 2 exp user/passwd@orcl DIRECT=Y BUFFER=100000 FILE=D:\b ...

  9. root用户下使用sqlplus登录Oracle数据库

    1.把环境变量添加到root用户的环境变量里面2.执行 chmod -R 6777 /tmp           chmod -R 6777 /usr/tmp           chmod -R 6 ...

随机推荐

  1. maven 添加自己的包

    mvn install:install-file -Dfile=d:/flea.jar -DgroupId=com.flea.bussiness -DartifactId=flea -Dversion ...

  2. Android多线程断点续传下载

    这个月接到一个项目.要写一个像360助手一样的对于软件管理的APP:当中.遇到了一个问题:多线程断点下载 这个 ,因为之前没有写过这方面的应用功能.所以.不免要自学了. 然后就在各个昂站上收索并整理了 ...

  3. mysql基本总结

    创建数据库 creat table test( #整数通常使用int test_id int, #小数通常使用decimal test_price decimal, #普通文本通常使用,并使用Defa ...

  4. poj 3128 Leonardo&#39;s Notebook(置换的幂)

    http://poj.org/problem?id=3128 大致题意:输入一串含26个大写字母的字符串,能够把它看做一个置换.推断这个置换是否是某个置换的平方. 思路:具体解释可參考url=ihxG ...

  5. Smarterer Test

    1.Using xp can swap two characters 2.In normal mode, use /abc/+4 can find the string "abc" ...

  6. qnx:从API开始理解QNX -- 消息传递

    从API开始理解QNX -- 消息传递    http://www.openqnx.com/chinese/viewtopic.php?f=5&t=2161 1. 频道与连接    Chann ...

  7. java覆写equals方法

    何时需要重写equals() 当一个类有自己特有的“逻辑相等”概念(不同于对象身份的概念). object规范规定,如果要重写equals(),也要重写hashcode() 如何覆写equals() ...

  8. 【原创】MapGIS K9 三维二次开发入门

    开发语言:C# 平台版本:MapGIS K9 SP3 MapGIS K9三维平台也提供了接口和组件以实现二次开发.用户可以根据提供的接口和组件进行二次开发,也可以借助MapGISK9数据中心框架,可以 ...

  9. memcache学习使用

    一.安装 二.telnet测试 启动:memcached -d -m 120.24.242.100 -p 11211 -u root 测试:telnet localhost 11211 >> ...

  10. python成长之路13

    一:SqlAlchemy ORM ORM:Object Relational Mapping 对象关系映射是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换 SQLAlchemy是 ...