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”