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

ORA-30926 - Scal stan

Oprócz wyjaśnienia od @zaratustra, twoje scalenie również próbuje ustawić fn i ln do tej samej name wartość, aby nie dał pożądanego rezultatu, nawet jeśli zadziałało. I nie możesz użyć fn lub ln w using klauzuli, gdy próbujesz je zaktualizować.

Jeśli Twój name_test tabela miała kolumnę klucza podstawowego (lub przynajmniej unikatową), więc można ją uwzględnić w scaleniu, ale nadal można poprawnie zaktualizować tylko fn lub ln wartość w jednym przejściu.

Nie jestem pewien, dlaczego nie wykonujesz prostej aktualizacji:

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. Jak zaimplementować sekwencje wielowymiarowe

  2. Jak automatycznie wygenerować tożsamość dla bazy danych Oracle za pomocą frameworka Entity?

  3. jak przechowywać nazwę pliku przeglądania w bazie danych

  4. Egzekwowanie klucza unikalnego/podstawowego – indeks odrzucenia

  5. Zaktualizuj kolumnę przy użyciu losowych unikalnych wartości z innej tabeli