1
Bitte helfen, die Frage ist am unteren Rand.SubType Referenz in Oracle
CREATE OR REPLACE TYPE NameType AS OBJECT
(firstName VARCHAR(20), middleName VARCHAR(20), lastName VARCHAR(20))
INSTANTIABLE
FINAL;
CREATE OR REPLACE TYPE ServicerType AS OBJECT
(servicerID INTEGER, servicerType VARCHAR(10))
INSTANTIABLE
FINAL;
CREATE OR REPLACE TYPE PersonType AS OBJECT
(personID INTEGER, name NameType, gender CHAR(1))
INSTANTIABLE
NOT FINAL;
CREATE OR REPLACE TYPE EmployeeType UNDER PersonType
(servicerRef REF ServicerType)
NOT INSTANTIABLE
NOT FINAL;
CREATE OR REPLACE TYPE FullTimeEmployeeType UNDER EmployeeType
(yearlySalary NUMBER(19,4))
INSTANTIABLE
FINAL;
CREATE TABLE Servicer OF ServicerType;
CREATE TABLE Person OF PersonType;
INSERT ALL
INTO Servicer values (ServicerType(100, 'Company')
SELECT * FROM dual
INSERT ALL
INTO Person VALUES (FullTimeEmployeeType(200,
NameType('Bob', 'T', 'Builder'), 'M',
(select ref(s) from servicer s where servicerid = 100), 56700))
SELECT * FROM dual
Jetzt möchte ich diese Abfrage auszuführen:
select p.gender, p.name.firstName, p.name.lastName, p.yearlySalary from person p
ich einen Fehler bekam. Ich weiß, dass yearlySalary in FullTimeEmployee ist, das ein Untertyp der Person ist, aber ich weiß nur nicht, wie man es referenziert.