Dies wird normalerweise durch Duplikate in der in der USING-Klausel angegebenen Abfrage verursacht. Dies bedeutet wahrscheinlich, dass TABLE_A eine übergeordnete Tabelle ist und dieselbe ROWID mehrmals zurückgegeben wird.
Sie könnten das Problem schnell lösen, indem Sie in Ihrer Abfrage ein DISTINCT verwenden (wenn 'Y' ein konstanter Wert ist, müssen Sie ihn nicht einmal in die Abfrage einfügen).
Angenommen, Ihre Abfrage ist korrekt (kennen Sie Ihre Tabellen nicht), könnten Sie etwa so vorgehen:
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';