UPDATE-uttalande

Uttrycket UPDATE ändrar värdena för angivna kolumner i en eller flera rader i en tabell eller vy. För en fullständig beskrivning av UPDATE SQL-satsen, se Oracle Database SQL Reference.

Syntax

uppdateringsuttalande :: =

Beskrivning av illustrationen update_statement.gif

Nyckelord och parameterbeskrivning

alias

Ett annat (vanligtvis kort) namn för den refererade tabellen eller vyn, som vanligtvis används i WHERE -satsen.

kolumnnamn

Kolumnen (eller en av kolumnerna) som ska uppdateras. Det måste vara namnet på en kolumn i den refererade tabellen eller vyn. Ett kolumnnamn kan inte upprepas i column_name -listan. Kolumnnamn behöver inte visas i UPDATE -uttrycket i samma ordning som de visas i tabellen eller vyn.

return_clause

Returnerar värden från uppdaterade rader, vilket eliminerar behovet av att SELECT raderna efteråt. Du kan hämta kolumnvärdena i variabler eller värdvariabler eller i samlingar eller värdmatriser. Du kan inte använda RETURNING -satsen för fjärr- eller parallelluppdateringar. Om uttalandet inte påverkar några rader är värdena för variablerna som anges i RETURNING -definitionen odefinierade. För syntaxen för returning_clause, se ”ÅTERGÅNG I Klausul”.

SET kolumnamn = sql_expression

Denna klausul tilldelar värdet för sql_expression till kolumnen identifierad av column_name. Om sql_expression innehåller referenser till kolumner i den tabell som uppdateras löses referenserna i den aktuella raden. De gamla kolumnvärdena används på höger sida av likhetstecknet.

SET column_name = (subquery3)

Tilldelar värdet som hämtats från databasen med subquery3 till kolumnen identifierad av column_name. Underfrågan måste returnera exakt en rad och en kolumn.

SET (kolumnnamn, kolumnnamn, …) = (underfråga4)

Tilldelar värden som hämtats från databasen med subquery4 till kolumnerna i listan column_name. Underfrågan måste returnera exakt en rad som innehåller alla listade kolumner. Kolumnvärdena som returneras av underfrågan tilldelas kolumnerna i kolumnlistan i ordning. Det första värdet tilldelas den första kolumnen i listan, det andra värdet tilldelas den andra kolumnen i listan och så vidare.

sql_expression

Alla giltiga SQL-uttryck. Mer information finns i Oracle Database SQL Reference.

underfråga

Ett SELECT -uttalande som ger en uppsättning rader för bearbetning. Dess syntax är som den för select_into_statement utan INTO -satsen. Se ”SELECT INTO Statement”.

table_reference

En tabell eller vy som måste vara tillgänglig när du kör UPDATE uttalande, och för som du måste ha UPDATE privilegier. För syntaxen för table_reference, se ”DELETE Statement”.

TABLE (underfråga2)

Operand för TABLE är ett SELECT -uttalande som returnerar ett enskilt kolumnvärde, vilket måste vara en kapslad tabell eller en variant. Operatör TABLE informerar Oracle om att värdet är en samling, inte ett skalärt värde.

VARA STRÖM AV markörnamn

Avser den senaste raden bearbetas av uttalandet FETCH associerat med den angivna markören. Markören måste vara FOR UPDATE och måste vara öppen och placerad på en rad. Om markören inte är öppen orsakar CURRENT OF -satsen ett fel. Om markören är öppen men inga rader har hämtats eller den sista hämtningen inga rader, höjer PL / SQL det fördefinierade undantaget NO_DATA_FOUND.

WHERE search_condition

Väljer vilka rader som ska uppdateras i databastabellen. Endast rader som uppfyller sökvillkoren uppdateras. Om du utelämnar denna klausul uppdateras alla rader i tabellen.

Användningsanmärkningar

Du kan använda UPDATE WHERE CURRENT OF uttalande efter en hämtning från en öppen markör (inklusive hämtningar gjorda av en markör FOR loop), förutsatt att den associerade frågan är FOR UPDATE. Detta uttalande uppdaterar raden som just hämtades.

Den implicita markören SQL och markörattributen %NOTFOUND, %FOUND, %ROWCOUNT och %ISOPEN låter dig få tillgång till användbar information om utförandet av en UPDATE uttalande.

Exempel

Exempel 13-7 skapar en tabell med korrekta medarbetar-ID men förvrängda namn. Sedan körs ett UPDATE uttalande med en korrelerad fråga, för att hämta rätt namn från EMPLOYEES tabellen och fixa namnen i den nya tabellen .

För exempel, se följande:

Exempel 1-12, ”Skapa ett lagrat underprogram”
Exempel 4-1, ”Använda ett enkelt IF-THEN-uttalande”
Exempel 5-51, ”Uppdatera en rad med en post”
Exempel 5-52, ”Använda RETURNING-klausulen med en post”
Exempel 6-1, ”Datahantering med PL / SQL”
Exempel 6-5, ”Använda CURRVAL och NEXTVAL”
Exempel 6-6, ”Använda ROWNUM”
Exempel 6-38, ”Använda SAVEPOINT med ROLLBACK”
Exempel 6-41, ”Använda CURRENT OF för att uppdatera den senaste raden som hämtats från en markör ”
Exempel 7-1,” Exempel på dynamisk SQL ”
Exempel 7-5,” Dynamisk SQL med RETURNING BULK COLLECT INTO Clause ”
Exempel 7-6 , ”Dynamic SQL Inside FORALL Statement”
Exempel 11-6, ”Använda återgång med FORALL”
Exempel 11-9, ”Bulk operation som fortsätter trots undantag”

Relaterade ämnen

”Datamanipulation”
”RADERA uttalande”
”FETCH-uttalande”
”INSERT Statement”

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *