SQL错误:ORA-00904 ::无效标识符3

时间:2016-04-14 14:56:03

标签: sql oracle

我正在尝试使用此查询创建一个表(customer)到数据库,

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

我得到以下回复:

  

错误报告 - SQL错误:ORA-00904 ::无效的标识符   00904. 00000 - "%s:无效的标识符"

1 个答案:

答案 0 :(得分:1)

本声明中有两个问题

首先是引用列的不一致用法(如@a_horse_with_no_name的评论中所述)

第二个问题是列约束不应该用列定义中的逗号分隔

注释中更改的正确语句是

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