Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

SQL त्रुटि:ORA-00907:लापता सही कोष्ठक संघर्ष कर रहा है

आपके कथन में बहुत कुछ गलत है।

  • A_EMP_ID CHAR 5 BYTE गुम है (..) लंबाई बाधा के आसपास
  • आप निश्चित रूप से CHAR . का उपयोग नहीं करना चाहते हैं admin_title . के लिए . उपयोग करेंVARCHAR2 इसके बजाय।
  • DIVERSITY_TRAINING_CERT = 'N','Y' मान्य अभिव्यक्ति नहीं है। आप शायद diversity_training_cert IN ('N','Y') . चाहते हैं
  • जबकि FOREIGN KEY (a_emp_id) REFERENCES admin(a_emp_id) वाक्य रचनात्मक रूप से सही है, इसका कोई मतलब नहीं है। मुझे लगता है कि आप एक manager_id want चाहते हैं या कुछ इसी तरह। और फिर FOREIGN KEY (manager_id) REFERENCES admin(a_emp_id) जैसा कुछ .
    वैकल्पिक रूप से आप किसी employee को संदर्भित करना चाहते हैं मेज़। उस स्थिति में a_emp_id डेटा प्रकार उस तालिका के पीके कॉलम के प्रकार से मेल खाना चाहिए।
  • CONSTRAINT ADMIN_END_DATE CHECK (<= 'ADMIN_START_DATE'), तीन त्रुटियां हैं:

    • एक कॉलम सिंगल कोट्स में संलग्न नहीं होना चाहिए। तो यह admin_start_date होना चाहिए नहीं 'admin_start_date'
    • एक चेक बाधा के लिए एक उचित स्थिति की आवश्यकता होती है। <= admin_start_date कोई शर्त नहीं है, आपको कॉलम की तुलना किसी चीज़ से करनी होगी। संभावित admin_end_date
    • आपके पास अल्पविराम है , उस अभिव्यक्ति के बाद जो गलत भी है।

यह सब एक साथ रखने पर आपको मिलता है:

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) 
);

असंबंधित, लेकिन:अपर केस में सब कुछ लिखने की बिल्कुल भी आवश्यकता नहीं है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डीबी से एक कनेक्शन रखना या जरूरत के मुताबिक बंद करना

  2. Oracle D2k, Oracle प्रपत्र 10g, Oracle प्रपत्र 6i . में अनुलग्नकों के साथ ईमेल भेजें

  3. COSH() Oracle में फंक्शन

  4. NEW_TIME () Oracle में फ़ंक्शन

  5. JDBC:एकल डेटाबेस आमंत्रण के माध्यम से एकाधिक परिणाम सेट लौटाना - Oracle के लिए काम नहीं करना