无法创建表oracle?

问题描述:

我无法在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

的表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;