sql >> Databasteknik >  >> RDS >> Oracle

ORA-30926:kan inte få en stabil uppsättning rader i källtabellerna

Detta orsakas vanligtvis av dubbletter i frågan som anges i USING-satsen. Detta betyder förmodligen att TABLE_A är en överordnad tabell och samma ROWID returneras flera gånger.

Du kan snabbt lösa problemet genom att använda en DISTINCT i din fråga (i själva verket, om "Y" är ett konstant värde behöver du inte ens sätta det i frågan).

Förutsatt att din fråga är korrekt (känner inte dina tabeller) kan du göra något så här:

  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. Framtiden för Postgres-XL

  2. Hur man får det aktuella datumet i MySQL

  3. Fix Msg 512 "Subquery returned more than 1 value" i SQL Server

  4. MariaDB JSON_QUOTE() Förklarad