Muszę zdefiniować typ obiektu Pracownik, który będzie posiadał pewne atrybuty, następnie muszę zdefiniować typ obiektu Menedżer, który odziedziczy typ Pracownik i będzie miał atrybut dodatkowy o nazwie nrEmp, który będzie zawierał liczbę pracowników, których każdy menedżer ma pod jego dowództwem. Muszę również wdrożyć metodę ORDER dla menedżera typu, dzięki czemu mogę zamówić menedżerów według liczby posiadanych przez nich pracowników. Najpierw definiuje ten typ:Jak przesłonić metodę ZAMÓWIENIA PL/SQL?
CREATE OR REPLACE TYPE Departament AS OBJECT (
deptno NUMBER(2),
dname CHAR(14)
);
Następne I zdefiniowany typ Pracownik:
CREATE OR REPLACE TYPE Employee AS OBJECT (
empno NUMBER(4),
ename CHAR(10),
dept REF Departament,
sal NUMBER(7,2)
) NOT FINAL;
wszystko działało dobrze aż do teraz. Następne próbuję zdefiniować typ Manager:
CREATE OR REPLACE TYPE Manager UNDER Employee (
nrEmp INTEGER,
ORDER MEMBER FUNCTION compare(m Manager) RETURN INTEGER
);
Kiedy zrobić to pojawia się następujący błąd:
Error(1,1): PLS-00646: MAP or ORDER method must be defined in the root of the subtype hierarchy
jak rozumiem muszę zadeklarować metodę w rodzaju pracownika. Ale nie jestem pewien, jak to zrobić we właściwy sposób. Nie można znaleźć żadnego przykładu pokazującego, jak zaimplementować metodę ORDER podczas dziedziczenia. Każda pomoc będzie doceniona. Dziękuję Ci.
Instrukcja może pomóc: http://docs.oracle.com/cd/E11882_01/appdev.112/e11822/adobjbas.htm#sthref161 –