Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

ORA-30926:tidak bisa mendapatkan set baris yang stabil di tabel sumber saat Menggabungkan tabel

Ini kasus yang agak rumit. Alasan utamanya adalah Anda tampaknya memiliki duplikat di kolom TMP_DP_REGIAO.DS_PROTHEUS_CODE dan MERGE mencoba memperbarui baris tabel tujuan yang sama beberapa kali. Tetapi jika nilai baru dan nilai lama di kolom yang diperbarui sama, Oracle dapat melewati masalah duplikat ini:

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 

Tetapi jika nilai lama dan baru berbeda, Oracle memunculkan pengecualian yang Anda dapatkan:

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. Fungsi COMPOSE() di Oracle

  2. Indeks partisi Oracle

  3. Memperbaiki kesalahan ORA-65096 saat membuat tes otomatis di Django menggunakan Oracle

  4. Natal Datang Lebih Awal (Oracle 12.2)

  5. Oracle memilih catatan tanggal terbaru