एक पीएल/एसक्यूएल फ़ंक्शन नेस्टेड टेबल वापस कर सकता है। बशर्ते हम नेस्टेड तालिका को SQL प्रकार के रूप में घोषित करें, हम इसे टेबल() फ़ंक्शन ।
यहाँ एक प्रकार और उससे निर्मित एक नेस्टेड तालिका है:
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>
यहाँ एक फ़ंक्शन है जो उस नेस्टेड तालिका को लौटाता है ...
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;
/
... और यह इस तरह काम करता है:
SQL> select *
2 from table(get_emp_dets(10))
3 /
EMPNO ENAME JOB
---------- ------------------------------ --------------------
7782 CLARK MANAGER
7839 KING PRESIDENT
7934 MILLER CLERK
SQL>
SQL प्रकार हमें बहुत अधिक कार्यक्षमता प्रदान करते हैं, और हमें PL/SQL में काफी परिष्कृत API बनाने की अनुमति देते हैं। और जानें ।