title: How do I select from Bulk Collected Table of Records Type
body: <p>I've got a procedure where I need to cache some data, for performance reasons, for downstream operations.</p>
  
  <p>The <code>TYPE</code> definitions work</p>
  
  <p>The <code>BULK COLLECT INTO</code> works</p>
  
  <p>The <code>SELECT</code> does not work</p>
  
  <pre><code>PROCEDURE MYPROC((PARAMS))AS
  
    TYPE REC_TYPE IS RECORD (
      COLUMN_1 (TABLEA.COLUMN_A)%TYPE,
      COLUMN_2 (TABLEA.COLUMN_B)%TYPE
    );
  
    TYPE TAB_TYPE IS TABLE OF REC_TYPE;
  
    TABLE_1 TAB_TYPE;
  
  BEGIN
  
    SELECT  COLUMN_A, COLUMN_B
    BULK COLLECT INTO TABLE_1 
    FROM  TABLE_A;
  
    SELECT * FROM TABLE_1;
  
  END MYPROC;
  </code></pre>
  
  <p>Yields:  </p>
  
  <blockquote>
    <p>Error(#,#): PL/SQL: ORA-00942: table or view does not exist</p>
  </blockquote>
  
  <p>I've also tried wrapping it in a table function like I do with my single-column types elsewhere, but that did not work either</p>
  
  <pre><code>SELECT * FROM TABLE(TABLE_1);
  </code></pre>
  
  <blockquote>
    <p>Error(#,#): PL/SQL: ORA-22905: cannot access rows from a non-nested
    table item</p>
  </blockquote>