Oracle
 sql >> база данни >  >> RDS >> Oracle

ORA-30926:не може да се получи стабилен набор от редове в изходните таблици при обединяване на таблици

Това е малко сложен случай. Основната причина е, че изглежда имате дубликати в колоната TMP_DP_REGIAO.DS_PROTHEUS_CODE и MERGE се опитва да актуализира един и същ ред на таблицата на местоназначението няколко пъти. Но ако новите стойности и старите стойности в актуализираните колони са еднакви, Oracle може да пропусне този проблем с дубликати:

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 

Но ако старите и новите стойности са различни, Oracle повдига изключението, което получавате:

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. Предотвратяване на отпадане на таблица в целева схема в Oracle Streams

  2. Функция RAWTONHEX() в Oracle

  3. Как да създадете потребител в Oracle 11g и да предоставите разрешения

  4. Oracle Apex 5.0 – Показване на статично изображение

  5. varchar2(n BYTE|CHAR) по подразбиране -> CHAR или BYTE