Oracle Study之--Oracle正则表达式
来源:互联网 发布:remote desktop mac 编辑:程序博客网 时间:2024/05/17 01:01
Oracle Study之--Oracle正则表达式
案例要求:
建立check constraint ,要求字段输入内容必须是“00[number][number][a-z]”:
通过正则表达式建立如下约束(constraint):
17:20:13 SCOTT@ prod >desc card
Name Null? Type
----------------------------------------------------------------- -------- --------------------------------------------
ID NOT NULL VARCHAR2(10)
17:22:53 SCOTT@ prod >
17:19:05 SCOTT@ prod >alter table card drop constraint card_ck;
Table altered.
建立正则表达式:
17:19:19 SCOTT@ prod >alter table card add constraint card_ck check (REGEXP_LIKE(id,'00[[:digit:]]{2}[[:lower:]]{1}'));
Table altered.
Elapsed: 00:00:00.06
测试:
17:19:33 SCOTT@ prod >insert into card values ('0055a');
1 row created.
Elapsed: 00:00:00.01
17:19:50 SCOTT@ prod >insert into card values ('0065z');
1 row created.
Elapsed: 00:00:00.00
17:20:04 SCOTT@ prod >insert into card values ('1188a');
insert into card values ('1188a')
*
ERROR at line 1:
ORA-02290: check constraint (SCOTT.CARD_CK) violated
Elapsed: 00:00:00.01
正则表达式说明:
表 5:REGEXP_LIKE 操作符
语法
说明
REGEXP_LIKE(source_string, pattern
[, match_parameter])
source_string 支持字符数据类型(CHAR、VARCHAR2、CLOB、NCHAR、NVARCHAR2 和 NCLOB,但不包括 LONG)。pattern 参数是正则表达式的另一个名称。match_parameter 允许可选的参数(如处理换行符、保留多行格式化以及提供对区分大小写的控制)。
表 1:定位元字符
元字符
说明
^
使表达式定位至一行的开头
$
使表达式定位至一行的末尾
表 2:量词或重复操作符
量词
说明
*
匹配 0 次或更多次
?
匹配 0 次或 1 次
+
匹配 1 次或更多次
{m}
正好匹配 m 次
{m,}
至少匹配 m 次
{m, n}
至少匹配 m 次但不超过 n 次
表 3:预定义的 POSIX 字符类
字符类
说明
[:alpha:]
字母字符
[:lower:]
小写字母字符
[:upper:]
大写字母字符
[:digit:]
数字
[:alnum:]
字母数字字符
[:space:]
空白字符(禁止打印),如回车符、换行符、竖直制表符和换页符
[:punct:]
标点字符
[:cntrl:]
控制字符(禁止打印)
[:print:]
可打印字符
- Oracle Study之--Oracle正则表达式
- Oracle Sql之正则表达式
- Oracle Study之--NLS_DATE_FORMAT
- OBE教程之oracle使用正则表达式
- Oracle Study之--CHECKPOINT探讨
- Oracle Study之案例--Oracle Sqlplus错误
- Oracle Study之--Oracle TimeZone升级
- Oracle Study之--Oracle 触发器(Trigger)
- Oracle Study之--Oracle数据仓库备份方案
- oracle的正则表达式
- Oracle正则表达式函数
- ORACLE 正则表达式
- oracle的正则表达式
- oracle正则表达式
- oracle正则表达式
- oracle 正则表达式
- Oracle正则表达式函数
- ORACLE 正则表达式
- 简明python教程:第3章 最初的步骤
- C程序编译过程浅析
- 看了这么多少关于设计模式的知识,下面我说说自己的看法吧。
- 数据矩阵与相异性矩阵
- Java中的static关键字解析
- Oracle Study之--Oracle正则表达式
- [Android] ListView中getView的原理+如何在ListView中放置多个item
- quartz与spring整合实现动态任务增删改查
- SET容器的基本知识
- 安卓最常用对话框样式。
- php 获取一个文件中return array() 的值
- 黑马程序员_多级目录的复制
- ANSI C动态内存分配与管理函数详解
- 使用BigDecimal进行加、减、乘、除