Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie kann ich eine Spalte aus einer verschachtelten Tabelle in pl/sql aktualisieren?

Die Syntax ist etwas unklar, aber im Grunde müssen Sie die verschachtelte Tabelle mit dem MULTISET-Operator manipulieren.

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

Dies verkettet den vorhandenen Satz von Markierungen mit einem neuen Satz (in diesem Fall einem Satz von Eins). Hier ist eine LiveSQL-Demo (kostenloses Oracle Technet-Konto erforderlich) .

Der Vorteil dieses Ansatzes besteht darin, dass es einfach ist, mehrere Werte auf einmal hinzuzufügen:

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

Verschachtelte Tabellenspalten sind im Prinzip clever, aber in der Praxis umständlich. Ihre Verwendung in SQL-Anweisungen kann zu hässlichem SQL führen. Wenn Sie sie verwenden wollen, müssen Sie sich mit allen MULTISET-Operatoren vertraut machen. Weitere Informationen .