以下比较意味着什么?

时间:2011-09-22 08:59:52

标签: regex oracle

任何人都可以解释为什么NOVALIDATE写在那里以及为什么两个“:”和“[]”之间的alpha

ALTER TABLE CUSTOMERS
ADD CONSTRAINT cust_f_name
CHECK(REGEXP_LIKE(cust_first_name,'[[:alpha:]]'))NOVALIDATE ;

以及

是什么
REGEXP_LIKE(cust_first_name,'^[0-9]') 

REGEXP_LIKE(cust_first_name,'^A-Z')

是什么意思?是不允许的数字?

1 个答案:

答案 0 :(得分:3)

这些是正则表达式,在Oracle中用作表约束。

  • [:alpha:]匹配alpha POSIX类中的任何字符;也就是说,字母字符(a-z和A-Z)。
  • ^的上下文中,^[0-9]表示从字符串的开头看。 [0-9]是数字类别(即0,1,2,3,4,5,6,7,8和9)
  • ^A-Z表示否定课程A-Z;所以它会匹配任何不包含大写字母字符的内容。

NOVALIDATE表示,一旦将约束添加到表CUSTOMERS,Oracle就不会检查当前条目是否违反约束并仅将其应用于新插入的记录。