title: can oracle types be updated like tables?
body: <p>I am converting GTT's to oracle types as explained in an excellent <a href="https://stackoverflow.com/questions/2918466/ways-to-avoid-global-temp-tables-in-oracle/2918935#2918935">answer</a> by APC.  however, some GTT's are being updated based on a select query from another table.  For example:</p>
  
  <pre><code>UPDATE my_gtt_1 c
     SET (street, city, STATE, zip) = (SELECT src.unit_address,
                                              src.unit_city,
                                              src.unit_state,
                                              src.unit_zip_code
                                         FROM (SELECT mbr.ROWID row_id,
                                                      unit_address,
                                                      RTRIM(a.unit_city) unit_city,
                                                      RTRIM(a.unit_state) unit_state,
                                                      RTRIM(a.unit_zip_code) unit_zip_code
                                                 FROM table_1        b,
                                                      table_2          a,
                                                      my_gtt_1 mbr
                                                WHERE type = 'ABC'
                                                  AND id = b.ssn_head
                                                  AND a.h_id = b.h_id
                                                  AND row_id &gt;= v_start_row
                                                  AND row_id &lt;= v_end_row) src
                                        WHERE c.ROWID = src.row_id)
   WHERE state IS NULL
      OR state = ' ';
  </code></pre>
  
  <p>if <code>my_gtt_1</code> was not a global temporary table but an oracle collection type then is it possible to do updates this complex? Or in these cases we are better off using the global temporary table?</p>