我目前正在尝试创建一个人员表格,允许某人成为客户或员工成员。目前,这是我的代码: -Oracle SQL - 表创建问题
Create Or Replace Type Person As OBJECT
(
person_id number(5) not null,
firstname varchar2(15) not null,
surname varchar2(15) not null,
address1 varchar2(70) not null,
address2 varchar2(70),
address3 varchar2(70),
postcode varchar2(9) not null
);
/
Create Or Replace Type Client Under Person
(
marital_status varchar2(10),
no_of_children number(2)
);
/
Create Or Replace Type Staff Under Person
(
job_title varchar2(15) not null,
salary number(4,2) not null,
manager_id number(5) not null
);
/
Create Table Person Of Person
(
person_id Primary Key
);
对象类型的所有编译但是当它来创建表,我收到以下错误: -
SQL Error: ORA-00902: invalid datatype
00902. 00000 - "invalid datatype"
是什么原因造成这个错误发生什么可以做到纠正它。任何帮助是极大的赞赏。
********编辑**********
我已经改变了表的名称person_tbl,仍然得到同样的错误。出于某种原因,这个错误现在出现在编译器日志: -
Error: PL/SQL: Compilation unit analysis terminated
Error(1,18): PLS-00905: object [ConnectionName].PERSON is invalid
我不知道为什么它没有让我使用人物类型,因为我已经triede此方法之前成功。
你需要这个。 '将TYPE PersonTable创建为TABLE的Person;'实际上,不能用类型创建一个堆组织的表。 – 2015-02-11 14:41:51
@MaheswaranRavisankar:在Oracle中,您可以根据类型创建一个“对象表”。问题中的语法是有效的,不包括答案中提到的问题。 – Allan 2015-02-11 15:52:48