sql >> Database teknologi >  >> RDS >> Oracle

Oracle SYS_REFCURSOR kunne ikke bruge som returtype

Jeg er ikke sikker på, hvad du forsøger at opnå, men jeg tror, ​​du har misforstået begrebet objekt i oracle. I mit eksempel går jeg ud fra
1) Table studens er oprettet med dette script create table student of student_t;

drop table student;

Opret typespecifikation og krop.

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;

Opret tabel over studnets

create table student of student_t;

Udfyld tabel

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; 

Og forespørgslen.

select s.*,s.getYear() from student s;



  1. PostgreSQL Primary Key-sekvens tabt efter migrering ved hjælp af AWS DMS

  2. Løsning til ORA-00997:ulovlig brug af LONG datatype

  3. c++ mysql-forbindelse bad_alloc ved hjælp af c++-stik

  4. Fejl ved udførelse af mvn sql:execute