Oracle 11g - Проверить ограничение с помощью RegEx

Я использую 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 не является хорошим способом проверки формата адреса электронной почты и другой информации. В комментарии не было указано никакой причины, и я хотел бы знать, почему, если причина есть!

6
задан Pacane 7 March 2018 в 19:29
поделиться