Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ORA-00907 podczas próby utworzenia ograniczenia CHECK

Komunikat o błędzie to

ORA-00907: missing right parenthesis

Prawie zawsze wskazuje na błąd składni, a nie na brakujący nawias. W tym przypadku parser sprzeciwia się kolejności elementów w definicji kolumny. W szczególności klauzula DEFAULT musi znajdować się przed klauzulą ​​CONSTRAINT, która zawiera deklarację NULL/NOT NULL. Więc spróbuj

USR_TITRE CHAR(6) DEFAULT 'M.'CHECK (USR_TITRE IN ('M.' , 'Mlle.','Mme.' )) NULL

Nawiasem mówiąc, masz problem z tym ograniczeniem. Typ danych CHAR jest zawsze dopełniany do zadeklarowanej długości. Tak więc, jeśli wpiszesz „M”. do kolumny zmieni się na 'M. ', której wartość spowoduje, że ograniczenie wyrzuci wyjątek. Proponuję zamiast tego użyć VARCHAR2(6).

Deklaracje CHAR są prawie zawsze błędem, po prostu błędem, który czeka, aby się wydarzyć.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. brakujący błąd słowa kluczowego w instrukcji Oracle CASE WHEN sql

  2. Konwersja ciągu ze skróconą strefą czasową na znacznik czasu

  3. JDBC łączy się z bazą danych Oracle za pomocą SSL

  4. Jak podzielić obiekt CLOB za pomocą i :separatora w Oracle na wiele rekordów?

  5. Nielegalny rok Oracle SQL