This means that you have to select on all the fields which comprise a unique key -- a non-unique primary key is not sufficient.Without uniqueness, you are reduced to something like @Paul Karr's loop -- and if there is not a unique correlation, then more than one target row may be updated for each source row.
MERGE INTO table1 trg USING ( SELECT t1.rowid AS rid, t2FROM table1 t1 JOIN table2 t2 ON table1.value = table2. UPDATETYPE='blah' ) src ON (trg.rowid = src.rid) WHEN MATCHED THEN UPDATE SET trg.value = code; Late to the party, but this is still a good thread. The command returns the table to the state it was in before the Oracle updates.To change the contract number for author A109 to 999, use the statement below.Notice that the WHERE clause identifies which row will be updated with Oracle UPDATE SQL. You need not specify the partition name when updating values in a partitioned table.