Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle SYS_REFCURSOR nie mógł użyć jako typu zwracanego

Nie jestem pewien, co chcesz osiągnąć, ale myślę, że źle zrozumiałeś pojęcie obiektu w oracle. W moim przykładzie zakładam
1) Stół student jest tworzony za pomocą tego skryptu create table student of student_t;

drop table student;

Utwórz specyfikację typu i treść.

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;

Utwórz tabelę stadnin

create table student of student_t;

Wypełnij 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; 

I zapytanie.

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. Polimorfizm LINQ-to-XYZ?

  2. Czy mogę przestawiać wiersze dat na kolumny bez konieczności określania dat w przestawieniu? Oracle SQL

  3. Klucz obcy bez klucza podstawowego do odniesienia

  4. Nie można użyć nazw kolumn w zapytaniu wybierającym w sqlfiddle (Oracle)

  5. Jak nadać unikalne ograniczenie kombinacji kolumn w Oracle?