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

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

To trochę trudna sprawa. Głównym powodem jest to, że wydaje się, że masz duplikaty w kolumnie TMP_DP_REGIAO.DS_PROTHEUS_CODE, a MERGE kilka razy próbuje zaktualizować ten sam wiersz tabeli docelowej. Ale jeśli nowe wartości i stare wartości w zaktualizowanych kolumnach są takie same, Oracle może pominąć ten problem z duplikatami:

SQL> select * from t;

      CODE TEXT                                                                 
---------- ----------                                                           
         1 test                                                                 

SQL> merge into t using (
  2   select 1 code,'test' text from dual union all
  3   select 1 code,'test' text from dual
  4  ) s
  5  on (t.code = s.code)
  6  when matched then
  7    update set t.text = s.text
  8  /

2 rows merged 

Ale jeśli stare i nowe wartości są różne, Oracle zgłasza wyjątek:

SQL> merge into t using (
  2   select 1 code,'a' text from dual union all
  3   select 1 code,'a' text from dual
  4  ) s
  5  on (t.code = s.code)
  6  when matched then
  7    update set t.text = s.text
  8  /
merge into t using (
           *
error in line 1:
ORA-30926: unable to get a stable set of rows in the source tables 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TRANSLATE(… UŻYWAJĄC) Funkcja w Oracle

  2. po wstawieniu znaku perskiego w Oracle db widzę znak zapytania

  3. Wstawianie obrazu do BLOB Oracle 10g

  4. Programista SQL 4

  5. ORA-12514 TNS:listener obecnie nie wie o żądanej usłudze w deskryptorze połączenia