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

Bisakah prosedur SQL mengembalikan tabel?

Fungsi PL/SQL dapat mengembalikan tabel bersarang. Asalkan kami mendeklarasikan tabel bersarang sebagai tipe SQL, kami dapat menggunakannya sebagai sumber kueri, menggunakan fungsi TABLE() .

Berikut adalah tipenya, dan tabel bersarang dibuat darinya:

SQL> create or replace type emp_dets as object (
  2  empno number,
  3  ename varchar2(30),
  4  job varchar2(20));
  5  /

Type created.

SQL> create or replace type emp_dets_nt as table of emp_dets;
  2  /

Type created.

SQL> 

Berikut adalah fungsi yang mengembalikan tabel bersarang itu ...

create or replace function get_emp_dets (p_dno in emp.deptno%type)
    return emp_dets_nt
is
    return_value emp_dets_nt;
begin
    select emp_dets(empno, ename, job)
    bulk collect into return_value
    from emp
    where deptno = p_dno;
    return return_value;
end;
/

... dan begini cara kerjanya:

SQL> select * 
  2  from table(get_emp_dets(10))
  3  /

     EMPNO ENAME                          JOB
---------- ------------------------------ --------------------
      7782 CLARK                          MANAGER
      7839 KING                           PRESIDENT
      7934 MILLER                         CLERK

SQL> 

Jenis SQL menawarkan kita banyak fungsi, dan memungkinkan kita untuk membangun API yang cukup canggih di PL/SQL. Cari tahu lebih lanjut .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa tipe data Oracle MLSLABEL?

  2. Alternatif untuk fungsi decode

  3. Parsing string XML yang disimpan di Oracle Table

  4. Ekstrak substring ke-n

  5. Integrator Data Oracle (ODI)