知识大全 Oracle10g的SQL正则表达式

Posted 字符

篇首语:我自横刀向天笑,去留肝胆两昆仑。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle10g的SQL正则表达式相关的知识,希望对你有一定的参考价值。

Oracle10g的SQL正则表达式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Oracle 和Oracle i中缺乏灵活性的SQL 正则表达式最终在Oracle g中得到了解决 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]+|[ ]+)$ 将匹配所有由小写字母或数字组合成的字符串

  REGEXP_LIKE 与LIKE 操作符相似 如果第一个参数匹配正则表达式它就解析为TRUE 例如WHERE REGEXP_LIKE(ENAME ^J[AO] i ) 将在ENAME 以JA 或JO 开始的情况下返回一行数据 I 参数指定正则表达式是大小写敏感的 另外还可以在CHECK 约束和函数索引中指定REGEXP_LIKE 例如

  ALTER TABLE EMP ADD CONSTRAINT REGEX

  CHECK (REGEXP_LIKE(ENAME ^[[:alpha:]]+$ ));

  这条语句使得ENAME 字段只能包含字母和数字字符(也就是说没有空格或者标点符号) 试图插入或者更新这些数据将导致一个ORA 异常 或者检查约束的有效性

  REGEXP_INSTR 与INSTR 函数类似 它返回一个字符串中匹配一个正则表达式的第一个子串的开始位置 例如

  SELECT REGEXP_INSTR( The total is $ for your purchase $[[:digit:]]+ )

  FROM DUAL;

  这个查询返回 即$ 在字符串的开始位置 另外还可以指定子串出现的次数 开始搜索的位置 是返回匹配的位置还是返回匹配之后字符的位置

  REGEXP_SUBSTR 返回匹配一个正则表达式的子串 虽然结合使用SUBSTR 和REGEXP_INSTR 及LENGTH 也可以实现这一功能 但是使用这个函数却更为简单

  SELECT REGEXP_INSTR( one o three [^ ]* ) FROM DUAL;

  这个查询返回 one 将第一个参数看成一个逗号分隔的列表并返回第一个逗号之前的所有字符

  REGEXP_REPLACE 返回初始参数被匹配子串替换之后的结果 例如

  SELECT REGEXP_REPLACE( The temperature is °F

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

  ( )* / || °C )

  FROM DUAL;

cha138/Article/program/Oracle/201311/18878

相关参考

知识大全 Oracle学习笔记:正则表达式

Oracle学习笔记:正则表达式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracleg数

知识大全 Oracle正则表达式中注意的问题

Oracle正则表达式中注意的问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Oracle

知识大全 Oracle正则表达式小试用

Oracle正则表达式小试用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  去除字符串中匹配模式

知识大全 Oracle10gR2中用正则表达式搜索文本

Oracle10gR2中用正则表达式搜索文本  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Orac

知识大全 在Oracle使用正规表达式编写更好的SQL语句

在Oracle使用正规表达式编写更好的SQL语句  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 修改oracle10g的字符集

  修改数据库字符集为ZHSGBK  查看服务器端字符集  SQL>select*fromV$NLS_PARAMETERS;  修改  $sqlplus/nolog  SQL>conn/a

知识大全 oracle 10g无法连接错误排除

  F:\\WINNT\\system\\drivers\\etc>sqlplusscott/tiger@testdb  SQL*Plus:ReleaseProductionon星期一月::  

知识大全 如何利用oracle10g的列值掩码技术隐藏

  Oracle的虚拟私有数据库特性(也称作细颗粒度存取控制)对诸如SELECT等数据管理语言DML语句提供行级安全性检查PL/SQL策略函数和某个数据表相关联这个函数可以检查当前用户的上下文背景并添

知识大全 js正则表达式的使用详解

本篇文章是对js中正则表达式的使用进行了详细的分析介绍需要的朋友可以参考下   js中的正则表达式比起C#中的正则表达式要弱很多但基本够用了定义正则表达式关于验证的三个这则表达式方法正则表达

知识大全 PHP正则匹配中文字母数字正则表达式

PHP正则匹配中文字母数字正则表达式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  方法一  代