OPPDATERING

Uttalelsen UPDATE endrer verdiene til spesifiserte kolonner i en eller flere rader i en tabell eller visning. For en fullstendig beskrivelse av UPDATE SQL-setningen, se Oracle Database SQL Reference.

Syntaks

oppdateringserklæring :: =

Beskrivelse av illustrasjonen update_statement.gif

Søkeord og parameterbeskrivelse

alias

Et annet (vanligvis kort) navn for den refererte tabellen eller visningen, vanligvis brukt i WHERE -setningen.

kolonnenavn

Kolonnen (eller en av kolonnene) som skal oppdateres. Det må være navnet på en kolonne i den refererte tabellen eller visningen. Et kolonnenavn kan ikke gjentas i column_name -listen. Kolonnenavn trenger ikke vises i UPDATE -uttalelsen i samme rekkefølge som de vises i tabellen eller visningen.

retur_klausul

Returnerer verdier fra oppdaterte rader, noe som eliminerer behovet for å SELECT radene etterpå. Du kan hente kolonneverdiene i variabler eller vertsvariabler, eller i samlinger eller vertsmatriser. Du kan ikke bruke RETURNING -klausulen for eksterne eller parallelle oppdateringer. Hvis utsagnet ikke påvirker noen rader, er verdiene til variablene spesifisert i RETURNING -klausulen udefinert. For syntaksen til returning_clause, se «RETURNING INTO Clause».

SET column_name = sql_expression

Denne paragrafen tildeler verdien til sql_expression til kolonnen identifisert av column_name. Hvis sql_expression inneholder referanser til kolonner i tabellen som oppdateres, blir referansene løst i sammenheng med den gjeldende raden. De gamle kolonneverdiene brukes på høyre side av likhetstegnet.

SET column_name = (subquery3)

Tilordner verdien hentet fra databasen med subquery3 til kolonnen identifisert av column_name. Delspørringen må returnere nøyaktig en rad og en kolonne.

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

Tilordner verdiene hentet fra databasen med subquery4 til kolonnene i column_name -listen. Delspørringen må returnere nøyaktig en rad som inkluderer alle kolonnene som er oppført. Kolonneverdiene som returneres av underspørringen tildeles kolonnene i kolonnelisten i rekkefølge. Den første verdien tildeles den første kolonnen i listen, den andre verdien tildeles den andre kolonnen i listen og så videre.

sql_expression

Ethvert gyldig SQL-uttrykk. For mer informasjon, se Oracle Database SQL Reference.

underforespørsel

En SELECT -erklæring som inneholder et sett med rader for behandling. Syntaksen er som den for select_into_statement uten INTO -satsen. Se «SELECT INTO Statement».

table_reference

En tabell eller visning som må være tilgjengelig når du utfører UPDATE uttalelse, og for som du må ha UPDATE privilegier. For syntaksen til table_reference, se «DELETE Statement».

TABLE (subquery2)

Operanden til TABLE er en SELECT -uttrykk som returnerer en enkelt kolonneverdi, som må være en nestet tabell eller en variasjon. Operatør TABLE informerer Oracle om at verdien er en samling, ikke en skalarverdi.

HVOR STRØMMEN PÅ CENTERNAVN

Henviser til den siste raden behandlet av FETCH setningen assosiert med den angitte markøren. Markøren må være FOR UPDATE og må være åpen og plassert på en rad. Hvis markøren ikke er åpen, forårsaker CURRENT OF -satsen en feil. Hvis markøren er åpen, men ingen rader er hentet eller den siste hentingen returnerte ingen rader, hever PL / SQL det forhåndsdefinerte unntaket NO_DATA_FOUND.

WHERE search_condition

Velger hvilke rader som skal oppdateres i databasetabellen. Bare rader som oppfyller søkebetingelsen blir oppdatert. Hvis du utelater denne paragrafen, oppdateres alle radene i tabellen.

Notater om bruk

Du kan bruke UPDATE WHERE CURRENT OF uttalelse etter henting fra en åpen markør (inkludert hentinger utført av en markør FOR loop), forutsatt at den tilknyttede spørringen er FOR UPDATE. Denne uttalelsen oppdaterer raden som nettopp ble hentet.

Den implisitte markøren SQL og markørattributtene %NOTFOUND, %FOUND, %ROWCOUNT og %ISOPEN lar deg få tilgang til nyttig informasjon om kjøringen av en UPDATE uttalelse.

Eksempler

Eksempel 13-7 oppretter en tabell med riktige medarbeider-IDer men forvrengede navn. Deretter kjører den en UPDATE uttalelse med et korrelert spørsmål, for å hente de riktige navnene fra EMPLOYEES tabellen og fikse navnene i den nye tabellen .

For eksempler, se følgende:

Eksempel 1-12, «Opprette et lagret underprogram»
Eksempel 4-1, «Bruke en enkel IF-THEN-uttalelse»
Eksempel 5-51, «Oppdatere en rad ved hjelp av en post»
Eksempel 5-52, «Bruke RETURNING-paragrafen med en post»
Eksempel 6-1, «Datamanipulering med PL / SQL»
Eksempel 6-5, «Bruke CURRVAL og NEXTVAL»
Eksempel 6-6, «Bruke ROWNUM»
Eksempel 6-38, «Bruke SAVEPOINT med ROLLBACK»
Eksempel 6-41, «Bruke CURRENT OF for å oppdatere den siste raden hentet fra en markør «
Eksempel 7-1,» Eksempler på dynamisk SQL «
Eksempel 7-5,» Dynamisk SQL med RETURNING BULK SAMLER INN Klausul «
Eksempel 7-6 , «Dynamic SQL Inside FORALL Statement»
Eksempel 11-6, «Bruk av tilbakeslag med FORALL»
Eksempel 11-9, «Massedrift som fortsetter til tross for unntak»

Relaterte emner

«Datamanipulering»
«SLETTE uttalelse»
«FETCH-uttalelse»
«INSERT Statement»

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *