Ich bin mir nicht sicher, was Sie erreichen wollen, aber ich glaube, Sie haben das Konzept des Objekts in Oracle missverstanden. In meinem Beispiel gehe ich davon aus, dass
1) Tabelle studens mit diesem Skript erstellt wird create table student of student_t;
drop table student;
Typspezifikation und Text erstellen.
create or replace type student_t as object(
stno char(4),
dob date,
member function getYear return number
)
;
create or replace type body student_t as
member function getYear return number is
begin
return EXTRACT(YEAR FROM self.dob);
end;
end;
Tabelle der Studentennetze erstellen
create table student of student_t;
Tabelle füllen
declare
v_student student_t;
begin
for i in 0 .. 10 loop
insert into student values(student_t('ST'||+mod(i,3),to_date('01-01-'||to_char(2000+i),'dd-mm-yyyy')));
end loop;
commit;
end;
Und die Abfrage.
select s.*,s.getYear() from student s;