Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ORA-30926:nie można uzyskać stabilnego zestawu wierszy w tabelach źródłowych

Jest to zwykle spowodowane duplikatami w zapytaniu określonym w klauzuli USING. To prawdopodobnie oznacza, że ​​TABLE_A jest tabelą nadrzędną i ten sam ROWID jest zwracany kilka razy.

Możesz szybko rozwiązać problem, używając w zapytaniu DISTINCT (w rzeczywistości, jeśli „Y” jest stałą wartością, nie musisz nawet umieszczać jej w zapytaniu).

Zakładając, że twoje zapytanie jest poprawne (nie znasz swoich tabel), możesz zrobić coś takiego:

  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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Eksportuj wyniki zapytania Oracle do pliku HTML podczas korzystania z SQLcl

  2. Jak zmienić format daty z MM/DD/RRRR na RRRR-MM-DD w PL/SQL?

  3. Funkcja ASIN() w Oracle

  4. SQLRecoverableException:Wyjątek we/wy:Resetowanie połączenia

  5. Uzyskaj różnicę między dwiema datami zarówno w miesiącach, jak i dniach w sql