title: ORA-00932: inconsistent datatypes: expected - got -
body: <p>I have been using Oracle(10g.2) as a PHP programmer for almost 3 years, but when I gave an assignment, I have tried to use the ref cursors and collection types for the first time. And I
  've searched the web, when I faced with problems, and this ora-00932 error really overwhelmed me. I need help from an old hand.</p>
  
  <p>Here is what I've been tackling with,
  I want to select rows from a table and put them in a ref cursor, and then with using record type, gather them within an associative array. And again from this associative array, make a ref cursor. Don't ask me why, I am writing such a complicated code, because I need it for more complex assignment. I might be sound confusing to you, thus let me show you my codes.</p>
  
  <p>I have 2 types defined under the types tab in Toad. One of them is an object type:</p>
  
  <pre><code>CREATE OR REPLACE
  TYPE R_TYPE AS OBJECT(sqn number,firstname VARCHAR2(30), lastname VARCHAR2(30));
  </code></pre>
  
  <p>Other one is collection type which is using the object type created above:</p>
  
  <pre><code>CREATE OR REPLACE
  TYPE tr_type AS TABLE OF r_type;
  </code></pre>
  
  <p>Then I create a package:</p>
  
  <pre><code>CREATE OR REPLACE PACKAGE MYPACK_PKG IS
  TYPE MY_REF_CURSOR IS REF CURSOR;
  PROCEDURE MY_PROC(r_cursor OUT MY_REF_CURSOR);
  END MYPACK_PKG;
  </code></pre>
  
  <p>Package Body:</p>
  
  <pre><code>CREATE OR REPLACE PACKAGE BODY MYPACK_PKG AS
   PROCEDURE MY_PROC(r_cursor OUT MY_REF_CURSOR) AS
    rcur MYPACK_PKG.MY_REF_CURSOR;
    sql_stmt VARCHAR2(1000);
    l_rarray   tr_type := tr_type();
                  l_rec r_type;
  
   BEGIN
       sql_stmt :=  'SELECT 1,e.first_name,e.last_name  FROM hr.employees e ';
       OPEN rcur FOR sql_stmt;
       LOOP
         fetch rcur into l_rec;
                    exit when rcur%notfound;
       l_rarray := tr_type( l_rec );
       END LOOP;
     CLOSE rcur;
      --OPEN r_cursor FOR SELECT * FROM TABLE(cast(l_rarray as tr_type) );
  
  
  END MY_PROC;
  END MYPACK_PKG;
  </code></pre>
  
  <p>I commented out the last line where I open ref cursor. Because it's causing another error when I run the procedure in Toad's SQL Editor, and it is the second question that I will ask. 
  And lastly I run the code in Toad:</p>
  
  <pre><code>variable r refcursor
  declare
  r_out MYPACK_PKG.MY_REF_CURSOR;
  begin
  MYPACK_PKG.MY_PROC(r_out);
  :r := r_out;
  end;
  print :r
  </code></pre>
  
  <p>There I get the ora-00932 error.</p>