Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle SYS_REFCURSOR konnte nicht als Rückgabetyp verwendet werden

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;