sql >> Databasteknik >  >> RDS >> Oracle

Hur kan jag uppdatera en kolumn från en kapslad tabell i pl/sql?

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 .



  1. Hur inaktiverar man trigger i Oracle SQL Developer?

  2. Vad är poängen med en lagrad procedur?

  3. vad är java.io.EOFException, meddelande:Kan inte läsa svar från servern. Förväntas läsa 4 byte, läsa 0 byte

  4. Hibernate och Oracle Sequence