Pac*_*ane 6 regex sql oracle check-constraints oracle11g
我正在使用Oracle 11g,并尝试创建一个表定义创建约束.
我试图添加检查约束来验证一些信息(如电子邮件地址,电话号码等...)
Oracle 11g中有什么东西可以让我做这样的事情吗?
constraint CK_CONSTRAINT_NAME check (EMAIL like 'REGEX')
Run Code Online (Sandbox Code Playgroud)
我想使用的regEx(从regexLib中获取)是:
^[a-zA-Z][a-zA-Z0-9_\.\-]+@([a-zA-Z0-9-]{2,}\.)+([a-zA-Z]{2,4}|[a-zA-Z]{2}\.[a-zA-Z]{2})$
Run Code Online (Sandbox Code Playgroud)
我认为Oracle 11g(如果我错了,请纠正我)不支持RegEx的这种格式...
我见过使用REGEX_LIKE的方法,但它似乎只适用于WHERE子句.
我想将它作为检查约束而不是触发器或外部函数/脚本.
此外,我在这里读过其他帖子,有人说RegEx'不是验证电子邮件地址格式和此类信息的好方法.评论中没有给出任何理由,我想知道为什么,如果有原因!
a_h*_*ame 15
检查约束遵循与WHERE子句的条件相同的语法规则:
alter table foo
add constraint check_email
check (REGEXP_LIKE(email,'your_regex_goes_here','I'));
Run Code Online (Sandbox Code Playgroud)
手册中的更多细节:
编辑:
但是,在检查约束中实际使用的内容有一些限制:
| 归档时间: |
|
| 查看次数: |
12744 次 |
| 最近记录: |