В настоящее время я пытаюсь создать таблицу людей, которая позволяет человеку быть либо клиентом, либо сотрудником. В настоящее время это мой код: -Oracle SQL - Table Create Issue
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"
, что является причиной этой ошибки происходят, и что может быть сделано для его исправления. Любая помощь приветствуется.
******** EDIT **********
Я изменил имя таблицы person_tbl и все еще получаю ту же ошибку. По некоторым причинам, эта ошибка появится в журнале компилятор: -
Error: PL/SQL: Compilation unit analysis terminated
Error(1,18): PLS-00905: object [ConnectionName].PERSON is invalid
Я понятия не имею, почему он не позволил мне использовать тип Person, как я triede этого метода перед успешно.
Вам это нужно. 'Создайте TYPE PersonTable как ТАБЛИЦУ ЧЕЛОВЕКА:' На самом деле вы не можете создать таблицу с кучей с типом. –
@MaheswaranRavisankar: в Oracle вы можете создать «таблицу объектов» на основе типа. Синтаксис в вопросе действителен, вне проблем, рассмотренных в ответах. – Allan