Regra de validação com CONSTRAINT CHECK e expressão regular (Oracle)

Categoria: Oracle
Publicado em 19 de Junho de 2013

Segue abaixo exemplo de como definir uma regra de validação de dados com a constraint CHECK:

1
2
3
4
5
6
7
CREATE TABLE CLIENTES (
   ID NUMBER PRIMARY KEY,
   EMAIL VARCHAR2(120),
   CONSTRAINT CK_EMAIL CHECK(
      REGEXP_LIKE(EMAIL, '^([[:alnum:]]+)@[[:alnum:]]+.(com|net|org|gov)$')
   )
);

O exemplo acima aplicará a expressão regular sobre qualquer INSERT ou UPDATE executado no campo EMAIL. Caso retorne falso, o dado não será inserido/alterado.

O exemplo acima pode ser melhorado para que aceite mais níveis de domínios (por exemplo .br).


 

Copyright © Fernando Hidemi Uchiyama 2010 - Todos os direitos reservados