clear screen
set serveroutput on size unlimited
select banner from v$version
create or replace type Names_NT as table of varchar2(32)
show err
create or replace package McDodd as
function Daughters return Names_NT;
function Relatives(type_in in number) return Names_NT;
end;
show err
create or replace package body McDodd as
function Daughters return Names_NT
is
l_Daughters Names_NT;
begin
l_Daughters := Names_NT();
l_Daughters.extend(2);
l_Daughters(1) := 'Hooly';
l_Daughters(2) := 'Holy';
return l_Daughters;
end;
function Relatives(type_in in number) return Names_NT
is
l_Daughters Names_NT;
begin
select n.firstname
bulk collect into l_Daughters
from NedMcDodd n
where n.type = type_in;
return l_Daughters;
end;
end;
show err
select column_value
from table(cast (McDodd.Daughters() as Names_NT))
select column_value
from table(cast (McDodd.Relatives(20) as Names_NT))