Syntaxen är lite oklar, men i grund och botten måste du manipulera den kapslade tabellen med MULTISET-operatorn.
update test
set marks = marks multiset union all numberlist(42)
where id_std = 1
Detta sammanfogar den befintliga uppsättningen av märken med en ny uppsättning (i detta fall en uppsättning av en). Här är en LiveSQL-demo (gratis Oracle Technet-konto krävs) .
Fördelen med detta tillvägagångssätt är att det är enkelt att lägga till flera värden samtidigt:
update test
set marks = marks multiset union all numberlist(23, 69)
where id_std = 1
Kapslade tabellkolonner är smarta i princip men besvärliga i praktiken. Att använda dem i SQL-satser kan leda till lite ful SQL. Om du ska använda dem måste du bekanta dig med alla MULTISET-operatörer. Läs mer .