2012-08-04 92 views
0

我無法在oracle中創建此表,並不斷收到錯誤ORA-00942:表或視圖不存在任何幫助,非常感謝!無法創建表oracle?

CREATE TABLE Occupancy 
(
    PatientNo   CHAR(6), 
    WardNo    CHAR(6), 
    BedNo    NUMBER(2), 
    StartOfOccupancy DATE, 
    EndOfOccupancy  DATE, 
    CostsIncurred  NUMBER(6,2), 
    PRIMARY KEY (Patientno,WardNo,BedNo,StartOfOccupancy), 
    FOREIGN KEY (Patientno) REFERENCES Patient (PatientNo), 
    FOREIGN KEY (WardNo,BedNo) REFERENCES Bed (WardNo,BedNo) 
) 
+5

執行表'PATIENT'和'BED'存在? – 2012-08-04 10:29:31

+3

與你的問題沒有關係,但是如果'PatientNo'和'WardNo'是數字,那麼你應該真的將它們存儲爲這樣。另外,我強烈建議使用['varchar2'而不是'char'。](http://stackoverflow.com/questions/7747184/oracle-datatype-should-i-use-varchar2-or-char – Ben 2012-08-04 10:31:38

+0

你的用戶授予CREATE表的權限? – hriziya 2012-08-04 10:32:07

回答

1

的表PatientBed不會在架構中存在(或不具有公共同義詞),您要創建表Occupancy。如果他們確實存在於不同的架構中,請在create語句中使用SCHEMA_NAME.PatientSCHEMA_NAME.Bed,或者爲兩個表PatientBed創建公共同義詞。如果你有特權引用這些表的新表應該生成,否則REFERENCES需要被授予您的模式爲

GRANT REFERENCES (PatientNo) 
ON SCHEMA_NAME.Patient 
TO YOUR_SCHEMA; 

而且

GRANT REFERENCES (WardNo,BedNo) 
ON SCHEMA_NAME.Bed 
TO YOUR_SCHEMA;