You are on page 1of 2

select unique name,type from user_source;

create or replace type obj is object(veno number,vname varchar2(20));


drop type obj force;
drop type t force;
drop type SYS_PLSQL_22713_DUMMY_1 force;
drop package body pack;
drop package pack;
create or replace type t is table of obj;
create or replace type t is table of varchar2(20);
select text from user_source where name='F';
create or replace package pack
is
--type t is table of obj;
function f return t;
end;
create or replace package body pack
is
function f
return t
is
type t1 is table of emp%rowtype;
v_t1 t1;
v_t t:=t();
--v obj:=obj(1,'a');
begin
select * bulk collect into v_t1 from temp;
for i in 1..v_t1.count
loop
--v:=obj(i.empno,i.ename);
--v.veno:=i.empno;
--v.vname:=i.ename;
v_t.extend;
v_t(v_t.count):=obj(v_t1(i).empno,v_t1(i).ename);
end loop;
return v_t;
end f;
end;
declare
type t is table of obj;
v_t t:=t();
begin
for i in (select empno,ename from temp)
loop
v_t.extend;
v_t(v_t.count):=(obj(i.empno,i.ename));
end loop;
for i in 1 .. v_t.count

loop
display(v_t(i).vname);
end loop;
end;
CREATE OR REPLACE PACKAGE my_pkg IS
TYPE t_col IS RECORD(
i NUMBER,
n VARCHAR2(30));
TYPE t_nested_table IS TABLE OF t_col;
FUNCTION return_table RETURN t_nested_table PIPELINED;
END my_pkg;
CREATE OR REPLACE PACKAGE BODY my_pkg IS
FUNCTION return_table RETURN t_nested_table PIPELINED IS
l_row t_col;
BEGIN
l_row.i := 1;
l_row.n := 'one';
PIPE ROW(l_row);
l_row.i := 2;
l_row.n := 'two';
PIPE ROW(l_row);
RETURN;
END;
END my_pkg;
create or replace function f (veno temp.empno%type)
return t
pipelined
is
v obj:=obj(1,'a');
begin
v.veno:=veno;
select ename into v.vname from temp where empno=veno;
pipe row(v);
return;
end;
create or replace function f (veno temp.empno%type)
return t
pipelined
is
v obj:=obj(1,'a');
begin
v.veno:=veno;
select ename into v.vname from temp where empno=veno;
pipe row(v);
return;
end;

You might also like