sql >> Database >  >> RDS >> Oracle

Oracle SYS_REFCURSOR kan niet als retourtype worden gebruikt

Ik weet niet zeker wat je probeert te bereiken, maar ik denk dat je het concept van object in orakel verkeerd hebt begrepen.;

tafel laten vallen student;

Maak typespecificatie en body.

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;

Tabel met studnets maken

create table student of student_t;

Tabel invullen

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; 

En de vraag.

selecteer s.*,s.getYear() van student s;



  1. Nullable DateTime uit de database halen

  2. PL/SQL - Optionele voorwaarden in waar-clausule - zonder dynamische sql?

  3. Wijzigingen berekenen in Oracle sql

  4. Vergelijk twee datums in Codeigniter en MySQL