チェック制約は、WHERE句の条件と同じ構文規則に従います。
alter table foo
add constraint check_email
check (REGEXP_LIKE(email,'your_regex_goes_here','I'));
マニュアルの詳細:
- Oracle11の場合-http://docs.oracle.com/cd/E11882_01/server.112/e41084/conditions007.htm#SQLRF52141
- Oracle12の場合-https://docs.oracle.com/database/121/SQLRF/conditions007.htm#SQLRF52141
編集:
ただし、チェック制約で実際に使用できるものにはいくつかの制限があります。
- 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