无法创建表oracle?

Posted

技术标签:

【中文标题】无法创建表oracle?【英文标题】:Unable to create table oracle? 【发布时间】:2012-08-04 10:25:39 【问题描述】:

我无法在 oracle 中创建此表并不断收到错误 ORA-00942:表或视图不存在任何帮助,非常感谢!

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

【问题讨论】:

PATIENTBED 存在吗? 与您的问题无关,但如果 PatientNoWardNo 是数字,那么您真的应该将它们存储起来。另外,我强烈建议使用 [varchar2 而不是 char。](***.com/questions/7747184/… 您的用户是否授予了创建表的权限? @HiteshRiziya:缺少创建表的授权会导致不同的错误 【参考方案1】:

PatientBed 在您尝试创建表Occupancy 的架构中不存在(或没有公共同义词)。如果它们确实存在于不同的架构中,请在创建语句中使用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;

【讨论】:

以上是关于无法创建表oracle?的主要内容,如果未能解决你的问题,请参考以下文章

无法从实体类 Hibernate 4.2.7 Websphere 8.5.5 oracle 11g 创建表

无法理解SQL(Oracle)建表代码

Oracle SQL 组合表信息并创建输出

Oracle进阶学习之创建数据库

Oracle进阶学习之创建数据库

ORACLE-015:ora-25153 暂时表空间为空,ora01652 无法通过128