Ich habe bereits meine Tabellen voller Daten, ich versuche, eine Einschränkung hinzuzufügen, nur um Buchstaben in das Attribut, das ich als studentfname benannt habe eingegeben werden. Ich habe verschiedene REGEXP ausprobiert, kann aber anscheinend keine zum Funktionieren bringen, ohne einen Fehler beim Einfügen zu bekommen.Oracle Constraint Nur Buchstaben SQL REGEXP
Ich bin nicht sicher, ob es ein Syntaxfehler oder was ist!
Edit: Hier ist, was ich versucht habe und der Fehler Ich erhalte:
ALTER TABLE STUDENT
ADD CONSTRAINT
check_name
CHECK(regexp_like(studentfname,'^[A-Za-z''-]+$'));
Fehler:
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
Bearbeiten Sie Ihre Frage, um uns zu zeigen, was Sie versucht haben, einschließlich der vollständigen Anweisung, die Sie zum Hinzufügen der Einschränkung verwendet haben, sowie den Fehler beim Erstellen der Einschränkung oder Einfügen von Daten. Verfügen Sie über vorhandene Daten, die nicht mit dem Muster übereinstimmen? Wenn ja, was möchten Sie tun - korrigieren Sie diese Daten oder lassen Sie die Einschränkung ignorieren? –
Hallo, ich habe alle vorhandenen Daten überprüft und keine stimmt nicht mit dem Muster überein. –
Offenbar gibt es mindestens eine Zeile, die ** nicht ** validiert. Ich glaube Oracle ist mehr als dein Anspruch, dass es keine ungültigen Daten gibt. –