我目前正在嘗試創建一個人員表格,允許某人成爲客戶或員工成員。目前,這是我的代碼: -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