我正在使用 Oracle 11g,并尝试创建一个表来定义创建约束。
我试图添加检查约束来验证一些信息(如电子邮件地址、电话号码等......)
Oracle 11g 中有什么东西可以让我做这样的事情吗?
constraint CK_CONSTRAINT_NAME check (EMAIL like '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})$
我认为 Oracle 11g(如果我错了,请纠正我)不支持 RegEx 的这种格式......
我见过使用 REGEX_LIKE 的方法,但它似乎只适用于WHERE
子句。
我想将其保留为检查约束,而不是触发器或外部函数/脚本。
另外,我在这里的其他线程中读过,有人说 RegEx' 不是验证电子邮件地址格式和此类信息的好方法。评论中没有给出原因,如果有原因,我想知道为什么!