title: Function returning table is creating public variable
body: <p>I am returning a table from a function
  First, I am creating a new object type that contains the fields that are going to be returned</p>
  
  <pre><code>create or replace type t_col as object (
    i number,
    n varchar2(30)
  );
  </code></pre>
  
  <p>Then I am creating a nested table : </p>
  
  <pre><code>create or replace type t_nested_table as table of t_col;
  </code></pre>
  
  <p>Then a am creating a function that returns a table</p>
  
  <pre><code>create or replace function return_table return t_nested_table as
    v_ret t_nested_table:= t_nested_table();
  
  begin
  
    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>The issue is when I am creating a object of type <code>t_nested_table</code> in function using following line in the function</p>
  
  <blockquote>
    <p>v_ret t_nested_table:= t_nested_table();</p>
  </blockquote>
  
  <p>Its creating an object like <code>SYSTPIeQAK45TO9TgUywLAQqu+g==</code> with public access, other schema users are able to access this object, is there any way to make them private.</p>