Dit wordt meestal veroorzaakt door duplicaten in de query die is opgegeven in de clausule USING. Dit betekent waarschijnlijk dat TABLE_A een bovenliggende tabel is en dat dezelfde ROWID meerdere keren wordt geretourneerd.
U kunt het probleem snel oplossen door een DISTINCT in uw zoekopdracht te gebruiken (in feite, als 'Y' een constante waarde is, hoeft u deze niet eens in de zoekopdracht in te voeren).
Ervan uitgaande dat uw zoekopdracht correct is (ken uw tabellen niet), zou u zoiets als dit kunnen doen:
MERGE INTO table_1 a
USING
(SELECT distinct ta.ROWID row_id
FROM table_1 a ,table_2 b ,table_3 c
WHERE a.mbr = c.mbr
AND b.head = c.head
AND b.type_of_action <> '6') src
ON ( a.ROWID = src.row_id )
WHEN MATCHED THEN UPDATE SET in_correct = 'Y';