UPDATE-erklæring

UPDATE -sætningen ændrer værdierne for de angivne kolonner i en eller flere rækker i en tabel eller en oversigt. For en fuld beskrivelse af UPDATE SQL-sætning, se Oracle Database SQL Reference.

Syntaks

opdateringserklæring :: =

Beskrivelse af illustrationen update_statement.gif

Nøgleord og parameterbeskrivelse

alias

Et andet (normalt kort) navn til den refererede tabel eller visning, der typisk bruges i WHERE -klausulen.

kolonnenavn

Kolonnen (eller en af kolonnerne), der skal opdateres. Det skal være navnet på en kolonne i den refererede tabel eller visning. Et kolonnenavn kan ikke gentages på column_name -listen. Kolonnenavne behøver ikke at blive vist i UPDATE udsagnet i samme rækkefølge som de vises i tabellen eller visningen.

return_clause

Returnerer værdier fra opdaterede rækker, hvilket eliminerer behovet for SELECT rækkerne bagefter. Du kan hente kolonneværdierne i variabler eller værtsvariabler eller i samlinger eller værtsarrays. Du kan ikke bruge klausulen RETURNING til fjernopdateringer eller parallelle opdateringer. Hvis udsagnet ikke påvirker nogen rækker, er værdierne for de variabler, der er angivet i RETURNING -klausulen, udefineret. For syntaksen for returning_clause, se “TILBAGE TIL Klausul”.

SET column_name = sql_expression

Denne klausul tildeler værdien af sql_expression til kolonnen identificeret af column_name. Hvis sql_expression indeholder referencer til kolonner i den tabel, der opdateres, løses referencerne i sammenhæng med den aktuelle række. De gamle kolonneværdier bruges på højre side af ligestegnet.

SET column_name = (subquery3)

Tildel den værdi, der er hentet fra databasen med subquery3 til kolonnen identificeret af column_name. Underforespørgslen skal returnere nøjagtigt en række og en kolonne.

SET (kolonnenavn, kolonnenavn, …) = (underforespørgsel4)

Tildeler de værdier, der er hentet fra databasen med subquery4 til kolonnerne i column_name -listen. Underforespørgslen skal returnere nøjagtigt en række, der indeholder alle de anførte kolonner. Kolonneværdierne, der returneres af underforespørgslen, tildeles kolonnerne i kolonnelisten i rækkefølge. Den første værdi tildeles den første kolonne på listen, den anden værdi tildeles den anden kolonne på listen osv.

sql_expression

Ethvert gyldigt SQL-udtryk. For mere information, se Oracle Database SQL Reference.

underforespørgsel

En SELECT -erklæring, der indeholder et sæt rækker til behandling. Dens syntaks er som for select_into_statement uden INTO -sætningen. Se “SELECT INTO Statement”.

table_reference

En tabel eller visning, der skal være tilgængelig, når du udfører UPDATE -erklæringen, og for som du skal have UPDATE privilegier. For syntaksen for table_reference, se “SLET erklæring”.

TABEL (underforespørgsel2)

Operand af TABLE er en SELECT -erklæring, der returnerer en enkelt kolonneværdi, som skal være en indlejret tabel eller en varray. Operatør TABLE informerer Oracle om, at værdien er en samling, ikke en skalarværdi.

WHERE CURRENT OF cursor_name

Henviser til den sidste række behandlet af FETCH udsagn tilknyttet den angivne markør. Markøren skal være FOR UPDATE og skal være åben og placeres på en række. Hvis markøren ikke er åben, forårsager CURRENT OF -klausulen en fejl. Hvis markøren er åben, men ingen rækker er hentet, eller den sidste hentning returnerer ingen rækker, hæver PL / SQL den foruddefinerede undtagelse NO_DATA_FOUND.

WHERE search_condition

Vælger hvilke rækker der skal opdateres i databasetabellen. Kun rækker, der opfylder søgebetingelsen, opdateres. Hvis du udelader denne klausul, opdateres alle rækker i tabellen.

Noter om brug

Du kan bruge UPDATE WHERE CURRENT OF udsagn efter en hentning fra en åben markør (inklusive hentninger udført af en markør FOR loop), forudsat at den tilknyttede forespørgsel er FOR UPDATE. Denne erklæring opdaterer den række, der lige blev hentet.

Den implicitte markør SQL og markørattributter %NOTFOUND, %FOUND, %ROWCOUNT og %ISOPEN giver dig adgang til nyttige oplysninger om udførelsen af en UPDATE erklæring.

Eksempler

Eksempel 13-7 opretter en tabel med korrekte medarbejder-ider men forvrængede navne. Derefter kører den en UPDATE sætning med en korreleret forespørgsel for at hente de korrekte navne fra EMPLOYEES -tabellen og rette navnene i den nye tabel .

Se følgende for eksempler:

Eksempel 1-12, “Oprettelse af et lagret underprogram”
Eksempel 4-1, “Brug af en simpel IF-THEN-sætning”
Eksempel 5-51, “Opdatering af en række ved hjælp af en post”
Eksempel 5-52, “Brug af RETURNING-klausulen med en post”
Eksempel 6-1, “Datemanipulation med PL / SQL”
Eksempel 6-5, “Brug af CURRVAL og NEXTVAL”
Eksempel 6-6, “Brug af ROWNUM”
Eksempel 6-38, “Brug af SAVEPOINT med ROLLBACK”
Eksempel 6-41, “Brug af CURRENT OF for at opdatere den seneste række hentet fra en markør “
Eksempel 7-1,” Eksempler på dynamisk SQL “
Eksempel 7-5,” Dynamisk SQL med RETURNING BULK COLLECT INTO Clause “
Eksempel 7-6 , “Dynamic SQL Inside FORALL Statement”
Eksempel 11-6, “Brug af tilbageførsler med FORALL”
Eksempel 11-9, “Bulk operation, der fortsætter på trods af undtagelser”

Relaterede emner

“Datamanipulation”
“SLET erklæring”
“FETCH-erklæring”
“INDSÆT erklæring”

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *