私はすでにデータが豊富なテーブルを持っていますが、私はstudentfnameという名前の属性に文字を入力できるように制約を追加しようとしています。私は様々な異なるREGEXPを試しましたが、それらを挿入するときにエラーを出すことなく動作するようには見えません。Oracle Constraint Letters Only SQL REGEXP
これは構文エラーかどうかわかりません。
編集:ここに私が試したものであり、エラーは私が取得しています:
ALTER TABLE STUDENT
ADD CONSTRAINT
check_name
CHECK(regexp_like(studentfname,'^[A-Za-z''-]+$'));
エラー:
QL Error: ORA-02293: cannot validate (JEIGH7.CHECK_NAME) - check constraint violated
02293. 00000 - "cannot validate (%s.%s) - check constraint violated"
*Cause: an alter table operation tried to validate a check constraint to
populated table that had nocomplying values.
*Action: Obvious
制約を追加するために使用した完全なステートメントと、制約の作成またはデータの挿入のエラーを含め、試した内容を表示するために質問を編集してください。パターンに一致しない既存のデータがありますか?もしそうなら、あなたは何をしたいのですか?そのデータを修正するか、制約を無視しますか? –
こんにちは、私はすべての既存のデータをチェックしており、どのパターンもパターンと一致しません。 –
明らかに**検証しない行が少なくとも1行あります。私は無効なデータがないことをあなたの主張よりもOracleが信じています。 –