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

Bagaimana cara mengembalikan beberapa baris dari prosedur tersimpan? (Oracle PL/SQL)

Berikut adalah cara membangun fungsi yang mengembalikan kumpulan hasil yang dapat ditanyakan seolah-olah itu adalah tabel:

SQL> create type emp_obj is object (empno number, ename varchar2(10));
  2  /

Type created.

SQL> create type emp_tab is table of emp_obj;
  2  /

Type created.

SQL> create or replace function all_emps return emp_tab
  2  is
  3     l_emp_tab emp_tab := emp_tab();
  4     n integer := 0;
  5  begin
  6     for r in (select empno, ename from emp)
  7     loop
  8        l_emp_tab.extend;
  9        n := n + 1;
 10       l_emp_tab(n) := emp_obj(r.empno, r.ename);
 11     end loop;
 12     return l_emp_tab;
 13  end;
 14  /

Function created.

SQL> select * from table (all_emps);

     EMPNO ENAME
---------- ----------
      7369 SMITH
      7499 ALLEN
      7521 WARD
      7566 JONES
      7654 MARTIN
      7698 BLAKE
      7782 CLARK
      7788 SCOTT
      7839 KING
      7844 TURNER
      7902 FORD
      7934 MILLER


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle ODP.Net Dengan Entity Framework 6 - Penyedia yang kompatibel dengan database kerangka kerja entitas tidak dapat ditemukan

  2. Perhitungan Oracle Age dari Tanggal lahir dan Hari Ini

  3. Tingkatkan grup disk VOTE di ASM untuk Peningkatan GI 12.2

  4. Tabel PIVOT Oracle SQL

  5. Basis data Oracle Pra-Built untuk pembelajaran dan pengujian menggunakan Oracle Developer VM