2015-04-12 29 views
-1

我创建在NetBeans IDE下表定义8.ORA-00902:无效的数据类型尝试具有唯一约束定义列

CREATE TABLE DOCTOR_INFO(
DOCTOR_ID NUMBER(38) NOT NULL CONSTRAINT DOCTORINFO_ID_UQ UNIQUE, 
D_F_NAME VARCHAR(50) NOT NULL, 
D_M_NAME VARCHAR(50) NOT NULL, 
D_S_NAME VARCHAR(50) NOT NULL, 
DOCTOR_NAME VARCHAR(50), 
D_TITLE VARCHAR(10) NOT NULL, 
D_ACTIVE_STATUS BOOLEAN NOT NULL, 
SUFFIX VARCHAR(10) NOT NULL, 
PASSWORD VARCHAR(50) NOT NULL, 
SPECIALITY VARCHAR(35) NOT NULL, 
QUALIFICATION_YEAR NUMBER(4) NOT NULL, 
UNIVERSITY_NAME VARCHAR(35) NOT NULL, 
HOSPITAL_NAME VARCHAR(35) NOT NULL, 
D_ADDR1 VARCHAR(50), 
D_ADDR2 VARCHAR(50), 
USER_EMAIL_ADDRESS VARCHAR(255) NOT NULL, 
D_CITY VARCHAR(50) NOT NULL, 
D_STATE VARCHAR(50), 
D_ZIPCODE NUMBER(6) NOT NULL, 
D_HOMEPHONE NUMBER(15) NOT NULL, 
D_WORKPHONE NUMBER(15) NOT NULL, 
D_MOBILE NUMBER(15) NOT NULL, 
START_DAYTIME TIMESTAMP, 
END_DAYTIME TIMESTAMP, 
START_NIGHTTIME TIMESTAMP, 
END_NIGHTTIME TIMESTAMP, 
D_TOKENLIMIT NUMBER(4), 
D_DOB DATE NOT NULL 
); 

当我尝试在Oracle 10g中运行它,我得到这个错误:

Error code 902, SQL state 42000: ORA-00902: invalid datatype Line 1, column 1

表定义有什么问题?

回答

1

您对列DOCTOR_ID的定义不符合Oracle SQL语法。当您试图执行的操作时,您不能在列声明中附加命名约束。你可以这样做...

​​

...实现你似乎想要的效果。但是,如果您不关心具体约束名称,那么您也可以这样做:

DOCTOR_ID NUMBER(38) NOT NULL UNIQUE,