Một hàm PL / SQL có thể trả về một bảng lồng nhau. Với điều kiện chúng tôi khai báo bảng lồng nhau dưới dạng kiểu SQL, chúng tôi có thể sử dụng nó làm nguồn truy vấn bằng cách sử dụng hàm TABLE () .
Đây là một loại và một bảng lồng nhau được xây dựng từ nó:
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>
Đây là một hàm trả về bảng lồng nhau đó ...
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;
/
... và đây là cách nó hoạt động:
SQL> select *
2 from table(get_emp_dets(10))
3 /
EMPNO ENAME JOB
---------- ------------------------------ --------------------
7782 CLARK MANAGER
7839 KING PRESIDENT
7934 MILLER CLERK
SQL>
Các kiểu SQL cung cấp cho chúng ta rất nhiều chức năng và cho phép chúng ta xây dựng các API khá phức tạp trong PL / SQL. Tìm hiểu thêm .