title: Merge statement array as source table
body: <p>Is it possible to use array as source for merge statement </p>
  
  <p>E.g. I have the below merge statement and when I compile, I am getting error.
  How can I use merge with array as source table?</p>
  
  <pre><code>PLS-00436: implementation restriction: cannot reference fields of BULK In-BIND 
  table of records 
  </code></pre>
  
  <p>Procedure code </p>
  
  <pre><code>CREATE or REPLACE PROCEDURE my_proc (varray IN my_array)
       AS
       BEGIN
            FORALL i IN varray.first..varray.last
            MERGE INTO tab t
            USING dual
            ON ( t.proj_id = varray(i).proj_id)
            WHEN MATCHED THEN
            UPDATE  set
            proj_title = varray (i).proj_title
                        WHERE   proj_id = varray (i).proj_id
              WHEN NOT MATCHED THEN
              insert (proj_id,proj_title)
              values (varray (i).proj_id,varray (i).proj_title);
           values (varray (i).proj_id,varray (i).proj_title);
  </code></pre>