sql >> Database >  >> RDS >> Oracle

ORA-30926 - Staat samenvoegen

Naast de uitleg van @zaratustra, probeert je samenvoeging ook de fn in te stellen en ln naar dezelfde name waarde, zodat het niet het gewenste resultaat zou geven, zelfs als het werkte. En je kunt fn . niet gebruiken of ln in de using clausule terwijl u ze probeert bij te werken.

Als uw name_test tabel een primaire sleutel (of op zijn minst unieke) kolom had, dan zou je die in de samenvoeging kunnen opnemen, maar je zou nog steeds alleen de fn correct kunnen bijwerken of ln waarde in één keer.

Ik weet niet zeker waarom je geen simpele update doet:

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. Hoe verander ik in Oracle mijn sessie om UTF8 weer te geven?

  2. stuur een e-mail met mysql fetch records

  3. MySQL-zelfstudie:MySQL IN-clausule (Basic)

  4. JSON_MERGE_PATCH() versus JSON_MERGE_PRESERVE() in MySQL:wat is het verschil?