Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

ORA-30926 - Trạng thái hợp nhất

Ngoài lời giải thích từ @zaratustra, hợp nhất của bạn cũng đang cố gắng đặt fnln đến cùng một name giá trị để nó sẽ không cung cấp kết quả bạn muốn ngay cả khi nó hoạt động. Và bạn không thể sử dụng fn hoặc ln trong using khi bạn đang cố gắng cập nhật chúng.

Nếu name_test của bạn bảng có khóa chính (hoặc ít nhất là duy nhất) thì bạn có thể đưa cột đó vào hợp nhất, nhưng bạn vẫn chỉ có thể cập nhật chính xác cột fn hoặc ln giá trị trong một lần vượt qua.

Tôi không chắc tại sao bạn không cập nhật đơn giản:

update name_test nt
set fn = (select td.name from temp_distinct td where td.fn = nt.fn),
  ln = (select td.name from temp_distinct td where td.fn = nt.ln);

8 rows updated.

select * from name_test;

FN    LN  
----- -----
Mich  Steve 
Mich  Phil  
Mark  Dave  
Mich  Phil  
Mich  Dave  
Phil  John  
Steve Dean  
Steve Phil  


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự cố kết nối Hikaricp Oracle

  2. Oracle không xóa con trỏ sau khi đóng tập kết quả

  3. Sự mơ hồ trong các phép nối bên trái (chỉ oracle?)

  4. Tối ưu hóa khi hợp nhất từ ​​liên kết dữ liệu Oracle

  5. oracle plsql nếu không tìm thấy lặp lại