Istruzione UPDATE

Listruzione UPDATE modifica i valori delle colonne specificate in una o più righe in una tabella o vista. Per una descrizione completa dellistruzione SQL UPDATE, vedere Oracle Database SQL Reference.

Sintassi

istruzione update :: =

Descrizione dellillustrazione update_statement.gif

Parola chiave e descrizione del parametro

alias

Un altro nome (solitamente breve) per la tabella o la vista di riferimento, tipicamente utilizzato nella clausola WHERE.

nome_colonna

La colonna (o una delle colonne) da aggiornare. Deve essere il nome di una colonna nella tabella o vista di riferimento. Il nome di una colonna non può essere ripetuto nellelenco column_name. I nomi delle colonne non devono essere visualizzati nellistruzione UPDATE nello stesso ordine in cui compaiono nella tabella o nella vista.

return_clause

Restituisce i valori dalle righe aggiornate, eliminando la necessità di SELECT le righe in seguito. È possibile recuperare i valori delle colonne in variabili o variabili host oppure in raccolte o array host. Non è possibile utilizzare la clausola RETURNING per aggiornamenti remoti o paralleli. Se listruzione non influisce su alcuna riga, i valori delle variabili specificate nella clausola RETURNING non sono definiti. Per la sintassi di returning_clause, vedere “RETURNING INTO Clause”.

SET column_name = sql_expression

Questa clausola assegna il valore di sql_expression alla colonna identificata da column_name. Se sql_expression contiene riferimenti a colonne nella tabella in fase di aggiornamento, i riferimenti vengono risolti nel contesto della riga corrente. I valori della vecchia colonna vengono utilizzati a destra del segno di uguale.

SET column_name = (subquery3)

Assegna il valore recuperato dal database da subquery3 alla colonna identificata da column_name. La sottoquery deve restituire esattamente una riga e una colonna.

SET (column_name, column_name, …) = (subquery4)

Assegna i valori recuperati dal database da subquery4 alle colonne nellelenco column_name. La sottoquery deve restituire esattamente una riga che include tutte le colonne elencate. I valori di colonna restituiti dalla sottoquery vengono assegnati alle colonne nellelenco delle colonne in ordine. Il primo valore viene assegnato alla prima colonna nellelenco, il secondo valore viene assegnato alla seconda colonna nellelenco e così via.

sql_expression

Qualsiasi espressione SQL valida. Per ulteriori informazioni, vedere Oracle Database SQL Reference.

sottoquery

Unistruzione SELECT che fornisce una serie di righe per lelaborazione. La sua sintassi è simile a quella di select_into_statement senza la clausola INTO. Vedere “Istruzione SELECT INTO”.

table_reference

Una tabella o una vista che deve essere accessibile quando si esegue listruzione UPDATE e per che devi avere i privilegi di UPDATE. Per la sintassi di table_reference, vedere “Istruzione DELETE”.

TABLE (subquery2)

Loperando di TABLE è unistruzione SELECT che restituisce un singolo valore di colonna, che deve essere una tabella nidificata o un varray. Loperatore TABLE informa Oracle che il valore è una raccolta, non un valore scalare.

WHERE CURRENT OF cursor_name

Si riferisce allultima riga elaborato dallistruzione FETCH associata al cursore specificato. Il cursore deve essere FOR UPDATE e deve essere aperto e posizionato su una riga. Se il cursore non è aperto, la clausola CURRENT OF causa un errore. Se il cursore è aperto, ma nessuna riga è stata recuperata o lultimo recupero non ha restituito alcuna riga, PL / SQL solleva leccezione predefinita NO_DATA_FOUND.

WHERE search_condition

Sceglie quali righe aggiornare nella tabella del database. Vengono aggiornate solo le righe che soddisfano la condizione di ricerca. Se ometti questa clausola, tutte le righe della tabella vengono aggiornate.

Note sullutilizzo

Puoi utilizzare UPDATE WHERE CURRENT OF dopo un recupero da un cursore aperto (inclusi i recuperi eseguiti da un cursore FOR loop), a condizione che la query associata sia FOR UPDATE. Questa istruzione aggiorna la riga che è stata appena recuperata.

Il cursore implicito SQL e gli attributi del cursore %NOTFOUND, %FOUND, %ROWCOUNT e %ISOPEN consentono di accedere a informazioni utili sullesecuzione di un UPDATE istruzione.

Esempi

Lesempio 13-7 crea una tabella con gli ID dei dipendenti corretti ma i nomi confusi. Quindi esegue unistruzione UPDATE con una query correlata, per recuperare i nomi corretti dalla tabella EMPLOYEES e correggere i nomi nella nuova tabella .

Per esempi, vedere quanto segue:

Esempio 1-12, “Creazione di un sottoprogramma memorizzato”
Esempio 4-1, “Utilizzo di unistruzione IF-THEN semplice”
Esempio 5-51, “Aggiornamento di una riga utilizzando un record”
Esempio 5-52, “Utilizzo della clausola RETURNING con un record”
Esempio 6-1, “Manipolazione dei dati con PL / SQL”
Esempio 6-5, “Utilizzo di CURRVAL e NEXTVAL”
Esempio 6-6, “Utilizzo di ROWNUM”
Esempio 6-38, “Utilizzo di SAVEPOINT con ROLLBACK”
Esempio 6-41, “Utilizzo di CURRENT OF per aggiornare lultima riga recuperata da un cursore “
Esempio 7-1,” Esempi di SQL dinamico “
Esempio 7-5,” SQL dinamico con clausola RETURNING BULK COLLECT INTO “
Esempio 7-6 , “Istruzione Dynamic SQL Inside FORALL”
Esempio 11-6, “Utilizzo di rollback con FORALL”
Esempio 11-9, “Operazione in blocco che continua nonostante le eccezioni”

Argomenti correlati

“Manipolazione dati”
“Istruzione DELETE”
“Istruzione FETCH”
“Istruzione INSERT”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *