Oracle 11gを使用していて、作成時に制約を定義するテーブルを作成しようとしています。
いくつかの情報(電子メールアドレス、電話番号など)を検証するためにチェック制約を追加しようとしていました。
Oracle 11gに、このようなことを可能にする何かがありますか?
constraint CK_CONSTRAINT_NAME check (EMAIL like '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_LIKEを使用するメソッドを見たことがありますが、これはWHERE
句でのみ機能するようです。
トリガーや外部関数/スクリプトではなく、チェック制約として保持したいと思います。
また、私はここで他のスレッドを読んだことがありますが、「正規表現」は電子メールアドレスの形式やそのような情報を確認する良い方法ではないと言う人がいます。コメントには理由が記載されていませんが、理由があればその理由を知りたいです!