2016-04-14 90 views
1

私は戻って、次の取得、このクエリを使用して、データベースにテーブル(顧客)を作成するSQLエラー:ORA-00904:無効な識別子3

CREATE TABLE customers(
    "customer_id" VARCHAR2(20), 
    f_name VARCHAR2(30), 
    CONSTRAINT f_name_not_null NOT NULL, 
    l_name VARCHAR2(30), 
CONSTRAINT l_name_not_null NOT NULL, 
    mobile_no VARCHAR2(30), 
    CONSTRAINT mobile_no_not_null NOT NULL, 
    address VARCHAR2(30), 
    CONSTRAINT address_not_null NOT NULL, 
    CONSTRAINT customer_pk PRIMARY KEY(customer_id), 
    CONSTRAINT mobile_no_address_unique UNIQUE(mobile_no,address)); 

をしようとしています:

Error report - SQL Error: ORA-00904: : invalid identifier 00904. 00000 - "%s: invalid identifier"

+6

「customer_id」は「customer_id」です。詳細はhttps://docs.oracle.co.jpを参照してください。 com/database/121/SQLRF/sql_element s008.htm#SQLRF00223恐ろしい二重引用符をすべて削除する –

答えて

1
(@a_horse_with_no_nameによってコメントで述べたように)

このステートメント

最初の2つの問題が

引用された列の一貫性のない使用法があります

第二の問題は、列制約はコメントの変化に正しい文は

CREATE TABLE customers(
    /*"*/customer_id/*"*/ VARCHAR2(20), 
    f_name VARCHAR2(30) /*,*/ 
    CONSTRAINT f_name_not_null NOT NULL, 
    l_name VARCHAR2(30)/*,*/ 
CONSTRAINT l_name_not_null NOT NULL, 
    mobile_no VARCHAR2(30)/*,*/ 
    CONSTRAINT mobile_no_not_null NOT NULL, 
    address VARCHAR2(30) /*,*/ 
    CONSTRAINT address_not_null NOT NULL, 
    CONSTRAINT customer_pk PRIMARY KEY(customer_id), 
    CONSTRAINT mobile_no_address_unique UNIQUE(mobile_no,address)); 

興味深いです列定義

からカンマで区切ってはならないことであるあなたが見るエラーが第二の問題に関係していることですそれを解決した後、より具体的な最初の問題のエラーが表示されます。

ORA-00904: "CUSTOMER_ID": invalid identifier 
関連する問題