sql >> Databáze >  >> RDS >> Oracle

ORA-30926 - Stav sloučení

Kromě vysvětlení od @zaratustra se vaše sloučení také pokouší nastavit fn a ln na stejné name hodnotu, takže by to nepřineslo požadovaný výsledek, i když by to fungovalo. A nemůžete použít fn nebo ln v using klauzule, když se je pokoušíte aktualizovat.

Pokud váš name_test tabulka měla sloupec primárního klíče (nebo alespoň jedinečný), pak byste jej mohli zahrnout do sloučení, ale stále byste byli schopni správně aktualizovat buď fn nebo ln hodnotu v jednom průchodu.

Nejsem si jistý, proč neprovádíte jednoduchou aktualizaci:

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. SQL Server:Dvouúrovňová GROUP BY s výstupem XML

  2. Použijte NEWID() k vytvoření jedinečné hodnoty na serveru SQL Server

  3. Parametr MySQLdb Stored Procedure Out nefunguje

  4. Jak získat časové pásmo operačního systému z databáze Oracle ve formátu řetězce? (Převést/převést datum na ts s tz)