Синтаксисът е малко неясен, но основно трябва да манипулирате вложената таблица с оператора MULTISET.
update test
set marks = marks multiset union all numberlist(42)
where id_std = 1
Това обединява съществуващия набор от марки с нов набор (в този случай набор от един). Ето демонстрация на LiveSQL (изисква се безплатен акаунт в Oracle Technet) .
Предимството на този подход е, че е лесно да добавите няколко стойности наведнъж:
update test
set marks = marks multiset union all numberlist(23, 69)
where id_std = 1
Вложените колони на таблицата са умни по принцип, но неудобни на практика. Използването им в SQL изрази може да доведе до някакъв грозен SQL. Ако ще ги използвате ще трябва да се запознаете с всички оператори MULTISET. Научете повече .