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 .