Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle SYS_REFCURSOR tidak dapat digunakan sebagai tipe pengembalian

Saya tidak yakin apa yang ingin Anda capai tetapi saya pikir Anda salah memahami konsep objek di Oracle. Dalam contoh saya, saya berasumsi
1) Tabel siswa dibuat dengan skrip ini create table student of student_t;

drop table student;

Buat tipe spec dan 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;

Buat tabel studnet

create table student of student_t;

Isi 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; 

Dan kuerinya.

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. Menggabungkan tabel dengan LIKE (SQL)

  2. Bagaimana cara mengantre di tabel Oracle AQ saat dikomit dengan Java dan mengonsumsi dengan klien JMS

  3. Kesalahan:PLS-00428:klausa into diharapkan dalam pernyataan pilih ini

  4. Bagaimana cara Membagi String di PL/SQL?

  5. Oracle Date TO_CHAR('Bulan DD, YYYY') memiliki spasi ekstra di dalamnya