2015-04-12 31 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,