title: How to fetch Oracle reference cursor into table variable?
body: <p>I am trying to load data from reference cursor into a table variable (or array), the reference cursor works if the table variable is based on existingtable %Rowtype but my reference cursor gets 
  loaded by joining multiple tables so let me try to demonstrate an example what i am trying to do and some one can help me</p>
  
  <pre><code>--created table
  create table SAM_TEMP(
      col1 number null,
      col2 varchar(100) null
  );
  
  --created procedure which outputs results from that table
  
  CREATE OR REPLACE
  PROCEDURE SP_OUT_RefCur_PARAM(
      C_RESULT OUT SYS_REFCURSOR
  ) IS
  BEGIN
      OPEN C_RESULT FOR 
          SELECT COL1,COL2
          FROM SAM_TEMP;
  END SP_OUT_RefCur_PARAM;
  
  --seeing the output works like this
  DECLARE 
      REFCUR SYS_REFCURSOR;   
      outtable SAM_TEMP%rowtype ;  
  BEGIN 
      SP_OUT_RefCur_PARAM(REFCUR);
      LOOP
          FETCH REFCUR INTO outtable;
          EXIT WHEN REFCUR%NOTFOUND;
          dbms_output.put_line(outtable.col1);
      END LOOP;
      CLOSE REFCUR;
  END;
  
  
  --but when i try to run below script it is giving error,i think i am missing something
  DECLARE 
      REFCUR SYS_REFCURSOR;   
      TYPE REFTABLETYPE IS RECORD (COL1 NUMBER, COL2  VARCHAR(100));
      TYPE TABLETYPE IS TABLE OF REFTABLETYPE;
      outtable TABLETYPE; 
  BEGIN 
      SP_OUT_RefCur_PARAM(REFCUR);
      LOOP
          FETCH REFCUR INTO outtable;
          EXIT WHEN REFCUR%NOTFOUND;
          dbms_output.put_line(outtable.col1);
      END LOOP;
      CLOSE REFCUR;
  END;
  </code></pre>
  
  <p>Error report:</p>
  
  <pre><code>ORA-06550 line 9, column 21:
  PLS-00597 expression 'OUTTABLE' in the INTO list is of wrong type
  ORA-06550 line 9, column 3:
  PL/SQL SQL Statement ignored
  ORA-06550 line 11, column 32:
  PLS-00302 component 'COL1' must be declared
  </code></pre>
  
  <p>Not sure what i am missing, Thanks in advance for your help</p>