title: Return collection from packaged function for use in select
body: <p>I'm currently using this block of code to return a collection of rows from my function.</p>
  
  <pre><code>--Source: http://www.adp-gmbh.ch/ora/plsql/coll/return_table.html
  
  create or replace type t_col as object (
  i number,
  n varchar2(30)
  );
  /
  create or replace type t_nested_table as table of t_col;
  /
  create or replace function return_table return t_nested_table as
    v_ret   t_nested_table;
  begin
    v_ret  := t_nested_table();
  
    v_ret.extend;
    v_ret(v_ret.count) := t_col(1, 'one');
  
    v_ret.extend;
    v_ret(v_ret.count) := t_col(2, 'two');
  
    v_ret.extend;
    v_ret(v_ret.count) := t_col(3, 'three');
  
    return v_ret;
  end return_table;
  /
  </code></pre>
  
  <p>Which I call by issuing SQL</p>
  
  <pre><code>select * from table(return_table);
  </code></pre>
  
  <p>Object types can not be defined in a package, I tried using the record type which worked (in PL/SQL) but I couldn't select from it in the same way as I can here.</p>
  
  <p>How do I achieve this result using a function inside a package?</p>