Я использую Oracle 11g и пытаюсь создать таблицу, определяющую ограничения на создание .
Я пытался добавить ограничение проверки, чтобы проверить некоторую информацию (например, адрес электронной почты, номер телефона и т. Д.))
Есть ли в Oracle 11g что-то, что позволило бы мне сделать что-то подобное?
constraint CK_CONSTRAINT_NAME check (EMAIL like 'REGEX')
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 не является хорошим способом проверки формата адреса электронной почты и другой информации. В комментарии не было указано никакой причины, и я хотел бы знать, почему, если причина есть!