UPDATE-instructie

De UPDATE -instructie verandert de waarden van gespecificeerde kolommen in een of meer rijen in een tabel of weergave. Zie Oracle Database SQL Reference voor een volledige beschrijving van de UPDATE SQL-instructie.

Syntaxis

update-instructie :: =

Beschrijving van de illustratie update_statement.gif

Trefwoord en parameterbeschrijving

alias

Een andere (meestal korte) naam voor de tabel of view waarnaar wordt verwezen, meestal gebruikt in de WHERE -clausule.

kolomnaam

De kolom (of een van de kolommen) die moet worden bijgewerkt. Het moet de naam zijn van een kolom in de tabel of weergave waarnaar wordt verwezen. Een kolomnaam kan niet worden herhaald in de lijst column_name. Kolomnamen hoeven niet in de instructie UPDATE te verschijnen in dezelfde volgorde waarin ze in de tabel of weergave voorkomen.

return_clause

Geeft waarden terug uit bijgewerkte rijen, waardoor de noodzaak om SELECT de rijen achteraf te verwijderen. U kunt de kolomwaarden ophalen in variabelen of hostvariabelen, of in verzamelingen of hostarrays. U kunt de clausule RETURNING niet gebruiken voor externe of parallelle updates. Als de instructie geen enkele rij beïnvloedt, zijn de waarden van de variabelen gespecificeerd in de RETURNING -clausule niet gedefinieerd. Zie “RETURNING INTO Clause” voor de syntaxis van returning_clause.

SET column_name = sql_expression

Deze clausule wijst de waarde toe van sql_expression naar de kolom aangeduid met column_name. Als sql_expression verwijzingen bevat naar kolommen in de tabel die wordt bijgewerkt, worden de verwijzingen omgezet in de context van de huidige rij. De oude kolomwaarden worden aan de rechterkant van het gelijkteken gebruikt.

SET column_name = (subquery3)

Wijst de waarde toe die uit de database is opgehaald door subquery3 naar de kolom aangeduid met column_name. De subquery moet exact één rij en één kolom retourneren.

SET (kolomnaam, kolomnaam, …) = (subquery4)

Wijst de waarden toe die uit de database zijn opgehaald door subquery4 naar de kolommen in de column_name lijst. De subquery moet exact één rij retourneren die alle vermelde kolommen bevat. De kolomwaarden die door de subquery worden geretourneerd, worden in volgorde toegewezen aan de kolommen in de kolomlijst. De eerste waarde wordt toegewezen aan de eerste kolom in de lijst, de tweede waarde wordt toegewezen aan de tweede kolom in de lijst, enzovoort.

sql_expression

Elke geldige SQL-expressie. Zie Oracle Database SQL Reference voor meer informatie.

subquery

Een SELECT -instructie die een set rijen biedt voor verwerking. De syntaxis is vergelijkbaar met die van select_into_statement zonder de INTO -clausule. Zie “SELECTEER IN instructie”.

table_reference

Een tabel of weergave die toegankelijk moet zijn wanneer u de instructie UPDATE uitvoert, en voor waarvoor u UPDATE rechten moet hebben. Zie “DELETE-instructie” voor de syntaxis van table_reference.

TABLE (subquery2)

De operand van TABLE is een SELECT -instructie die een enkele kolomwaarde retourneert, die een geneste tabel of een varray moet zijn. Operator TABLE informeert Oracle dat de waarde een verzameling is, geen scalaire waarde.

WHERE CURRENT OF cursor_name

Verwijst naar de laatste rij verwerkt door de FETCH -instructie die is gekoppeld aan de opgegeven cursor. De cursor moet FOR UPDATE zijn en moet open zijn en op een rij staan. Als de cursor niet open is, veroorzaakt de clausule CURRENT OF een fout. Als de cursor open is, maar er zijn geen rijen opgehaald of de laatste keer dat er geen rijen zijn opgehaald, genereert PL / SQL de vooraf gedefinieerde uitzondering NO_DATA_FOUND.

WHERE search_condition

Kiest welke rijen moeten worden bijgewerkt in de databasetabel. Alleen rijen die aan de zoekvoorwaarde voldoen, worden bijgewerkt. Als u deze clausule weglaat, worden alle rijen in de tabel bijgewerkt.

Gebruiksnotities

U kunt de UPDATE WHERE CURRENT OF instructie na een ophaalactie vanaf een geopende cursor (inclusief ophaalacties gedaan door een cursor FOR loop), op voorwaarde dat de bijbehorende zoekopdracht FOR UPDATE is. Deze instructie werkt de rij bij die zojuist is opgehaald.

De impliciete cursor SQL en de cursorattributen %NOTFOUND, %FOUND, %ROWCOUNT, en %ISOPEN geven u toegang tot nuttige informatie over de uitvoering van een UPDATE verklaring.

Voorbeelden

Voorbeeld 13-7 creëert een tabel met correcte werknemer-IDs maar verminkte namen. Vervolgens voert het een UPDATE -instructie uit met een gecorreleerde query, om de juiste namen op te halen uit de EMPLOYEES -tabel en de namen in de nieuwe tabel te corrigeren .

Zie voor voorbeelden het volgende:

Voorbeeld 1-12, “Een opgeslagen subprogramma maken”
Voorbeeld 4-1, “Een eenvoudige IF-THEN-instructie gebruiken”
Voorbeeld 5-51, “Een rij bijwerken met een record”
Voorbeeld 5-52, “De RETURNING-clausule gebruiken met een record”
Voorbeeld 6-1, “Gegevensmanipulatie met PL / SQL”
Voorbeeld 6-5, “CURRVAL en NEXTVAL gebruiken”
Voorbeeld 6-6, “ROWNUM gebruiken”
Voorbeeld 6-38, “SAVEPOINT gebruiken met ROLLBACK”
Voorbeeld 6-41, “CURRENT gebruiken OF om de laatste rij bij te werken die is opgehaald met een cursor “
Voorbeeld 7-1,” Voorbeelden van dynamische SQL “
Voorbeeld 7-5,” Dynamische SQL met RETURNING BULK COLLECT IN clausule “
Voorbeeld 7-6 , “Dynamic SQL Inside FORALL-instructie”
Voorbeeld 11-6, “Rollbacks gebruiken met FORALL”
Voorbeeld 11-9, “Bulkoperatie die ondanks uitzonderingen doorgaat”

Verwante onderwerpen

“Gegevensmanipulatie”
“DELETE-instructie”
“FETCH-instructie”
“INSERT-instructie”

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *