sql >> Database teknologi >  >> RDS >> Oracle

Hvordan kan jeg opdatere en kolonne fra en indlejret tabel i pl/sql?

Syntaksen er en smule uklar, men dybest set skal du manipulere den indlejrede tabel med MULTISET-operatoren.

update test 
set marks = marks multiset union all numberlist(42) 
where id_std = 1 

Dette sammenkæder det eksisterende sæt af mærker med et nyt sæt (i dette tilfælde et sæt af et). Her er en LiveSQL-demo (gratis Oracle Technet-konto kræves) .

Fordelen ved denne tilgang er, at det er nemt at tilføje flere værdier på én gang:

update test 
set marks = marks multiset union all numberlist(23, 69) 
where id_std = 1 

Indlejrede tabelsøjler er i princippet smarte, men besværlige i praksis. Brug af dem i SQL-sætninger kan føre til noget grimt SQL. Hvis du skal bruge dem, bliver du nødt til at sætte dig ind i alle MULTISET-operatørerne. Få mere at vide .



  1. Android-kamera til at tage flere billeder

  2. Skift type varchar-felt til heltal:kan ikke castes automatisk til typen heltal

  3. Hvordan kan man vælge alle poster undtagen de første 3 poster?

  4. hvordan man indstiller standardværdi for teksttype i mysql