La syntaxe est un peu obscure, mais en gros, vous devez manipuler la table imbriquée avec l'opérateur MULTISET.
update test
set marks = marks multiset union all numberlist(42)
where id_std = 1
Cela concatène l'ensemble existant de marques avec un nouvel ensemble (dans ce cas, un ensemble d'un seul). Voici une démo LiveSQL (compte Oracle Technet gratuit requis) .
L'avantage de cette approche est qu'il est facile d'ajouter plusieurs valeurs à la fois :
update test
set marks = marks multiset union all numberlist(23, 69)
where id_std = 1
Les colonnes de table imbriquées sont astucieuses en principe mais peu pratiques en pratique. Les utiliser dans des instructions SQL peut conduire à un code SQL moche. Si vous comptez les utiliser, vous devrez vous familiariser avec tous les opérateurs MULTISET. En savoir plus .