sql >> Database >  >> RDS >> Oracle

ORA-30926:kan geen stabiele set rijen in de brontabellen krijgen

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';


  1. Hoe OCTET_LENGTH() werkt in MariaDB

  2. Multi-Statement TVF's in Dynamics CRM

  3. COS() Voorbeelden in SQL Server

  4. MySQL:selecteer willekeurige invoer, maar gewicht naar bepaalde invoer