Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle SYS_REFCURSOR не може да използва като тип на връщане

Не съм сигурен какво се опитвате да постигнете, но мисля, че не сте разбрали концепцията за обект в oracle. В моя пример предполагам
1) Таблица studens се създава с този скрипт create table student of student_t;

drop table student;

Създайте спецификация на типа и тяло.

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;

Създаване на таблица на studnet

create table student of student_t;

Попълване на таблица

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; 

И заявката.

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Избиране на различни стойности от три колони с максимум четвърта, където има дубликати

  2. Oracle instant client с gem ruby-oci8 не може да се свърже с DB в rails c

  3. Oracle Blob като img src в PHP страница

  4. Как да получите две върнати стойности от Oracle Stored Procedure

  5. Oracle ListaGG, Топ 3 най-често срещани стойности, дадени в една колона, групирани по ID