网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.解决ora-01861文字与格式字符串不.
.TestKing Oracle 1Z0-131 Edt5.0.
.Ora2html--收集Oracle数据库信息.
.定时执行存储过程对库表及索引进.
.Oracle 8 的函数介绍.
.创建复制环境中只读实体化视图站.
.监控当前并行查询运行状况脚本.
.Oracle 8高级数据复制技术.
.实例讲解如何更改字段至兼容的不.
.ORA-600 [2103]错误解决过程.
.Oracle9i专题讲座精华.
.oracle修改计算机名后重启服务失.
.oracle数据库中关于null排序的问.
.如何在redhat 9,redhat ELAS 3/2.
.PL/SQL 快速建立DB_LINK.
.下载Oracle数据库中的Blob二进制.
.嵌入式设备上的 Linux 系统开发.
.Oracle JDeveloper 11g预览版发布.
.针对Oracle的TNS listener攻击方.
.redhat 6.2下 Oracle8.1.6I+ APA.

Oracle10g的SQL正则表达式支持

发表日期:2008-2-9


Oracle 8 和Oracle 9i中缺乏灵活性的SQL 正则表达式最终在Oracle 10g中得到了解决。Oracle 数据库目前内建了符合POSIX 标准的正则表达式。 四个新的函数分别是:REGEXP_LIKE、REGEXP_INSTR、REGEXP_SUBSTR、和 REGEXP_REPLACE。它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法,但是它们使用POSIX 正则表达式代替了老的百分号(%)和通配符(_)字符。 POSIX 正则表达式由标准的元字符(metacharacters)所构成:
  • '^' 表示字符串的开始
  • '$' 表示字符串的结束
  • '.' 表示任何字符
  • 字符的范围,比如说'[a-z]',表示任何ASCII 小写字母,与字符类"[[:lower:]]"" 等价
  • '?' 答应一个后继字符匹配零次或一次
  • '+' 答应一个后继字符匹配一次或多次
  • '*' 表示零次或多次
可以使用"{m,n}" 指定一个精确地出现范围,其意思是“出现从m 次到n 次”;"{m}" 表示“正好m次”;而"{m,}" 表示“至少m次”。还可以使用圆括号组合字符的集合,使用""(竖线)表示可替换。例如,字符串'^([a-z]+[0-9]+)$'将匹配所有由小写字母或数字组合成的字符串。 REGEXP_LIKE 与LIKE 操作符相似。假如第一个参数匹配正则表达式它就解析为TRUE。例如WHERE REGEXP_LIKE(ENAME,'^J[AO]','i') 将在ENAME 以JA 或JO 开始的情况下返回一行数据。'I' 参数指定正则表达式是大小写敏感的。另外还可以在CHECK 约束和函数索引中指定REGEXP_LIKE。例如: ALTER TABLE EMP ADD CONSTRAINT REGEX01

CHECK (REGEXP_LIKE(ENAME,'^[[:alpha:]]+$')); 这条语句使得ENAME 字段只能包含字母和数字字符(也就是说没有空格或者标点符号)。试图插入或者更新这些数据将导致一个ORA-2290 异常,或者检查约束的有效性。 REGEXP_INSTR 与INSTR 函数类似。它返回一个字符串中匹配一个正则表达式的第一个子串的开始位置。例如: SELECT REGEXP_INSTR('The total is $400 for your purchase.','$[[:digit:]]+')

FROM DUAL; 这个查询返回14,即$400在字符串的开始位置。另外还可以指定子串出现的次数;开始搜索的位置;是返回匹配的位置还是返回匹配之后字符的位置。 REGEXP_SUBSTR 返回匹配一个正则表达式的子串。虽然结合使用SUBSTR 和REGEXP_INSTR 及LENGTH 也可以实现这一功能,但是使用这个函数却更为简单。 SELECT REGEXP_INSTR('one,two,three','[^,]*') FROM DUAL; 这个查询返回'one',将第一个参数看成一个逗号分隔的列表并返回第一个逗号之前的所有字符。 REGEXP_REPLACE 返回初始参数被匹配子串替换之后的结果。例如: SELECT REGEXP_REPLACE('The temperature is 23°F',

'([[:digit:]])+°F',

('\1'-32)*5/9'°C')

FROM DUAL; 这个查询将查找一个华氏温度并将其转换为摄氏度。它将返回:'The temperature is -5°C'。
上一篇:Oracle 数据库10g:自动共享内存管理 人气:939
下一篇:oracle_sid,server_name,网络连接,数据库启动 人气:658
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐