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

Come posso aggiornare una colonna da una tabella nidificata in pl/sql?

La sintassi è un po' oscura, ma in pratica è necessario manipolare la tabella annidata con l'operatore MULTISET.

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

Questo concatena l'insieme esistente di segni con un nuovo insieme (in questo caso un insieme di uno). Ecco una demo di LiveSQL (è richiesto un account Oracle Technet gratuito) .

Il vantaggio di questo approccio è che è facile aggiungere più valori contemporaneamente:

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

Le colonne di tabelle nidificate sono intelligenti in linea di principio ma scomode in pratica. Il loro utilizzo nelle istruzioni SQL può portare a un brutto SQL. Se hai intenzione di utilizzarli dovrai familiarizzare con tutti gli operatori MULTISET. Scopri di più .