title: ORACLE: INSERT INTO Table VALUES of object type collection
body: <p>Having created the below types;</p>
  
  <pre><code>CREATE OR REPLACE TYPE OBJ_TYPE AS OBJECT
    ( FLAG      DATE
    , NUMB      NUMBER(2,0)
    , VARC      VARCHAR2(40 BYTE));
  /
  CREATE OR REPLACE TYPE TBL_OBJ_TYPE AS TABLE OF OBJ_TYPE;
  /
  </code></pre>
  
  <p>I want to simply insert the data set into a table;</p>
  
  <pre><code>DECLARE
    DATA_SET TBL_OBJ_TYPE := TBL_OBJ_TYPE();
  BEGIN
    FOR REC IN (SELECT * FROM TBL_01)
    LOOP
      DATA_SET.EXTEND;
      DATA_SET(DATA_SET.COUNT) :=
      OBJ_TYPE( 1
              , REC.TBL_01_COL1
              , REC.TBL_01_COL2);
    END LOOP;
  
    FORALL REC IN DATA_SET.FIRST..DATA_SET.LAST
      INSERT INTO TBL_02 
      VALUES ( DATA_SET(REC).FLAG --listed column
             , DATA_SET(REC).NUMB --listed column
             , DATA_SET(REC).VARC); --listed column
  END;
  </code></pre>
  
  <p>This one works fine, but is it somehow possible to change the "VALUES" clause to avoid naming each attribute in the source object? I would like something like this:</p>
  
  <pre><code>VALUES DATA_SET(REC)
  </code></pre>
  
  <p>Any help will be much appreciated.</p>