sql >> Database teknologi >  >> RDS >> Oracle

ORA-30926:ude af stand til at få et stabilt sæt rækker i kildetabellerne

Dette er normalt forårsaget af dubletter i den forespørgsel, der er angivet i USING-klausulen. Dette betyder sandsynligvis, at TABLE_A er en overordnet tabel, og den samme ROWID returneres flere gange.

Du kan hurtigt løse problemet ved at bruge en DISTINCT i din forespørgsel (faktisk, hvis 'Y' er en konstant værdi, behøver du ikke engang at sætte den i forespørgslen).

Hvis du antager, at din forespørgsel er korrekt (kender ikke dine tabeller), kan du gøre noget som dette:

  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. Nulstil AutoIncrement i SQL Server efter sletning

  2. Hvordan finder man grænserne for grupper af sammenhængende sekventielle tal?

  3. Sådan installeres MySQL 8.0 på CentOS 8 / RHEL 8

  4. Bord med koordinater for et sekskantet gitter, der dækker verden