Un vincolo di controllo segue le stesse regole di sintassi delle condizioni per una clausola WHERE:
alter table foo
add constraint check_email
check (REGEXP_LIKE(email,'your_regex_goes_here','I'));
Maggiori dettagli nel manuale:
- per Oracle 11 - http://docs.oracle.com/cd/E11882_01/server.112/e41084/conditions007.htm#SQLRF52141
- per Oracle 12 - https://docs.oracle.com/database/121/SQLRF/conditions007.htm#SQLRF52141
Modifica:
Esistono tuttavia alcune restrizioni su ciò che puoi effettivamente utilizzare in un vincolo di controllo:
- Oracle 11 - http://docs.oracle.com/cd/E11882_01/server.112/e41084/clauses002.htm#SQLRF52205
- Oracle 12 - https://docs.oracle.com/database/121/SQLRF/clauses002.htm#SQLRF52205