Instrucțiune UPDATE

Instrucțiunea UPDATE modifică valorile coloanelor specificate într-unul sau mai multe rânduri dintr-un tabel sau vizualizare. Pentru o descriere completă a instrucțiunii SQL UPDATE, consultați Oracle Database SQL Reference.

Sintaxă

declarație de actualizare :: =

Descrierea ilustrației update_statement.gif

Cuvânt cheie și descrierea parametrilor

alias

Un alt nume (de obicei scurt) pentru tabelul sau vizualizarea de referință, utilizat de obicei în clauza WHERE.

column_name

Coloana (sau una dintre coloane) de actualizat. Trebuie să fie numele unei coloane din tabelul sau vizualizarea de referință. Un nume de coloană nu poate fi repetat în lista column_name. Numele coloanelor nu trebuie să apară în instrucțiunea UPDATE în aceeași ordine în care apar în tabel sau vizualizare.

return_clause

Returnează valori din rândurile actualizate, eliminând necesitatea SELECT rândurilor după aceea. Puteți prelua valorile coloanei în variabile sau variabile gazdă, sau în colecții sau tablouri gazdă. Nu puteți utiliza clauza RETURNING pentru actualizări de la distanță sau paralele. Dacă instrucțiunea nu afectează niciun rând, valorile variabilelor specificate în clauza RETURNING sunt nedefinite. Pentru sintaxa returning_clause, consultați „RETURNING INTO Clause”.

SET column_name = sql_expression

Această clauză atribuie valoarea sql_expression la coloana identificată de column_name. Dacă sql_expression conține referințe la coloane din tabelul actualizat, referințele sunt rezolvate în contextul rândului curent. Vechile valori ale coloanei sunt folosite în partea dreaptă a semnului egal.

SET nume_coloană = (subinterogare3)

Atribuie valoarea recuperată din baza de date de subquery3 la coloana identificată de column_name. Subinterogarea trebuie să returneze exact un rând și o coloană.

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

Atribuie valorile recuperate din baza de date de subquery4 la coloanele din lista column_name. Subinterogarea trebuie să returneze exact un rând care include toate coloanele listate. Valorile coloanelor returnate de subinterogare sunt atribuite coloanelor din lista de coloane în ordine. Prima valoare este atribuită primei coloane din listă, a doua valoare este alocată celei de-a doua coloane din listă și așa mai departe.

sql_expression

Orice expresie SQL validă. Pentru mai multe informații, consultați Oracle Database SQL Reference.

subinterogare

O instrucțiune SELECT care oferă un set de rânduri pentru procesare. Sintaxa sa este ca cea a select_into_statement fără clauza INTO. Consultați „Instrucțiunea SELECT INTO”.

table_reference

O tabelă sau o vizualizare care trebuie să fie accesibilă atunci când executați instrucțiunea UPDATE și pentru pe care trebuie să aveți UPDATE privilegii. Pentru sintaxa table_reference, consultați „DELETE statement”.

TABLE (subquery2)

Operandul TABLE este o instrucțiune SELECT care returnează o valoare a unei singure coloane, care trebuie să fie un tabel imbricat sau un varray. Operatorul TABLE informează Oracle că valoarea este o colecție, nu o valoare scalară.

WHERE CURRENT OF cursor_name

Se referă la ultimul rând procesată de instrucțiunea FETCH asociată cu cursorul specificat. Cursorul trebuie să fie FOR UPDATE și trebuie să fie deschis și poziționat pe un rând. Dacă cursorul nu este deschis, clauza CURRENT OF provoacă o eroare. Dacă cursorul este deschis, dar nu au fost preluate rânduri sau ultima preluare nu a returnat niciun rând, PL / SQL ridică excepția predefinită NO_DATA_FOUND.

WHERE search_condition

Alege rândurile de actualizat în tabelul bazei de date. Doar rândurile care îndeplinesc condiția de căutare sunt actualizate. Dacă omiteți această clauză, toate rândurile din tabel sunt actualizate.

Note de utilizare

Puteți utiliza UPDATE WHERE CURRENT OF instrucțiune după o preluare dintr-un cursor deschis (inclusiv preluări efectuate de un cursor FOR buclă), cu condiția ca interogarea asociată să fie FOR UPDATE. Această declarație actualizează rândul care tocmai a fost preluat.

Cursorul implicit SQL și atributele cursorului %NOTFOUND, %FOUND, %ROWCOUNT și %ISOPEN vă permit să accesați informații utile despre execuția unui UPDATE declarație.

Exemple

Exemplul 13-7 creează un tabel cu ID-urile corecte ale angajaților, dar cu nume greșite. Apoi rulează o instrucțiune UPDATE cu o interogare corelată, pentru a prelua numele corecte din tabelul EMPLOYEES și pentru a remedia numele din noul tabel .

Pentru exemple, consultați următoarele:

Exemplul 1-12, „Crearea unui subprogram stocat”
Exemplul 4-1, „Utilizarea unei instrucțiuni simple IF-THEN”
Exemplul 5-51, „Actualizarea unui rând folosind o înregistrare”
Exemplul 5-52, „Utilizarea clauzei RETURNING cu o înregistrare”
Exemplul 6-1, „Manipularea datelor cu PL / SQL”
Exemplul 6-5, „Utilizarea CURRVAL și NEXTVAL”
Exemplul 6-6, „Utilizarea ROWNUM”
Exemplul 6-38, „Utilizarea SAVEPOINT cu ROLLBACK”
Exemplul 6-41, „Utilizarea CURENTULUI OF pentru a actualiza ultimul rând preluat de la un cursor „
Exemplul 7-1,” Exemple de SQL dinamic „
Exemplul 7-5,” SQL dinamic cu RETURNING BULK COLLECT INTO Clause „
Exemplul 7-6 , „Instrucțiune Dynamic SQL Inside FORALL”
Exemplul 11-6, „Utilizarea restituirilor cu FORALL”
Exemplul 11-9, „Operațiune în bloc care continuă în ciuda excepțiilor”

Subiecte conexe

„Manipulare date”
„Declarație ȘTERGERE”
„Declarație FETCH”
„Declarație INSERT”

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *