ठीक है, हो सकता है कि आप MYTYPE
. के आधार पर एक और प्रकार की कमी महसूस कर रहे हों .
यहां एक उदाहरण दिया गया है (मैं स्कॉट की स्कीमा का उपयोग कर रहा हूं क्योंकि मेरे पास आपकी टेबल नहीं है)। मैंने DEPTNO
जोड़ा है MYTYPE
. में ताकि मैं EMP
के साथ परिणाम (फ़ंक्शन द्वारा लौटाया गया) में शामिल हो सकूं टेबल।
आपके पास यही है:
SQL> create or replace type mytype as object
2 (deptno number,
3 dname varchar2(20),
4 loc varchar2(20));
5 /
Type created.
यह वही है जो आप खो रहे हैं:
SQL> create or replace type mytab as table of mytype;
2 /
Type created.
एक फ़ंक्शन:नोट लाइन 9:
SQL> create or replace function myfunc (p_in number) return mytab is
2 v_dname varchar2(20);
3 v_loc varchar2(20);
4 begin
5 select dname, loc
6 into v_dname, v_loc
7 from dept
8 where deptno = p_in;
9 return mytab(mytype(p_in, v_dname, v_loc));
10 end myfunc;
11 /
Function created.
परीक्षण:
SQL> select * from table(myfunc(10));
DEPTNO DNAME LOC
---------- -------------------- --------------------
10 ACCOUNTING NEW YORK
SQL>
SQL> select e.ename, e.sal, m.dname, m.loc
2 from emp e join table(myfunc(e.deptno)) m on m.deptno = e.deptno
3 where e.deptno = 10
4 order by m.dname, e.ename;
ENAME SAL DNAME LOC
---------- ---------- -------------------- --------------------
CLARK 2450 ACCOUNTING NEW YORK
KING 10000 ACCOUNTING NEW YORK
MILLER 1300 ACCOUNTING NEW YORK
SQL>