sql >> Database teknologi >  >> RDS >> Oracle

SQL-fejl:ORA-00907:manglende højre parentes kæmper

Der er meget galt med dit udsagn.

  • A_EMP_ID CHAR 5 BYTE mangler (..) omkring længdebegrænsningen
  • Du ønsker absolut ikke at bruge CHAR for admin_title . Brug VARCHAR2 i stedet.
  • DIVERSITY_TRAINING_CERT = 'N','Y' er ikke et gyldigt udtryk. Du vil sandsynligvis have diversity_training_cert IN ('N','Y')
  • Mens FOREIGN KEY (a_emp_id) REFERENCES admin(a_emp_id) er syntaktisk korrekt, giver det ikke mening. Jeg gætter på, at du vil have et manager_id eller noget lignende. Og så noget som FOREIGN KEY (manager_id) REFERENCES admin(a_emp_id) .
    Alternativt har du måske tænkt dig at henvise til en employee bord. I så fald er a_emp_id datatypen skal matche typen af ​​PK-kolonne i den pågældende tabel.
  • CONSTRAINT ADMIN_END_DATE CHECK (<= 'ADMIN_START_DATE'), har tre fejl:

    • en kolonne må ikke være omgivet af enkelte anførselstegn. Så det skal være admin_start_date ikke 'admin_start_date'
    • en kontrolbegrænsning kræver en korrekt tilstand. <= admin_start_date er ikke en betingelse, skal du sammenligne kolonnen det med noget. Formodentlig admin_end_date
    • du har et komma , efter det udtryk, som også er forkert.

Når du sætter det hele sammen får du:

CREATE TABLE admin 
(
    a_emp_id                  CHAR(5 BYTE) NOT NULL, 
    admin_start_date          DATE DEFAULT SYSDATE NOT NULL,
    admin_end_date            DATE NULL,
    diversity_training_cert   CHAR(1 BYTE)  DEFAULT 'N' NOT NULL,
    admin_title               VARCHAR2(40 BYTE) NULL,
    CONSTRAINT admin_pk 
        PRIMARY KEY(a_emp_id),
    CONSTRAINT admin_fk1 
        FOREIGN KEY (a_emp_id) REFERENCES admin(a_emp_id),
    CONSTRAINT admin_diversity_cert 
        CHECK (diversity_training_cert IN ('N','Y')), 
    CONSTRAINT admin_end_date 
        CHECK ( admin_end_date <= admin_start_date) 
);

Ikke relateret, men:der er heller ingen grund til at skrive alt med store bogstaver.



  1. 3 måder at finde ud af, om en kolonne er en beregnet kolonne i SQL Server

  2. Sådan parses arrays i array PHP->JSON->XCODE

  3. Plan Explorer 3.0 Webinar – eksempler og spørgsmål og svar

  4. Oracle SQL Loader ORA-01722:ugyldigt nummer ved indlæsning af CSV-fil med Windows-linjeendelser