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»