Что означает приведенное ниже сравнение? - PullRequest
0 голосов
/ 22 сентября 2011

Может ли кто-нибудь объяснить, почему написано NOVALIDATE и почему альфа ставит два ":" и "[]"

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 Ответ

3 голосов
/ 22 сентября 2011

Это регулярные выражения, используемые в Oracle как ограничение таблицы.

  • [:alpha:] соответствует любому символу из класса alpha POSIX;то есть буквенные символы (аз и аз).
  • ^ в контексте ^[0-9] означает взгляд с начала строки.[0-9] - это класс чисел (т. Е. 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9)
  • ^A-Z означает отрицание класса A-Z;поэтому он будет соответствовать всему, что не содержит буквенных символов верхнего регистра.

NOVALIDATE означает, что после добавления ограничения в таблицу CUSTOMERS Oracle не будет проверять наличие текущегозаписи нарушают ограничение и применяют его только к вновь вставленным записям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...