A UPDATE
utasítás megváltoztatja a megadott oszlopok értékeit egy vagy több sorban egy táblázatban vagy nézetben. Az UPDATE
SQL utasítás teljes leírását lásd: Oracle Database SQL Reference.
Szintaxis
update utasítás :: =
Az update_statement.gif ábra leírása
Kulcsszó és paraméter leírása
alias
A hivatkozott táblázat vagy nézet másik (általában rövid) neve, amelyet általában a WHERE
záradékban használnak.
oszlop_név
A frissítendő oszlop (vagy az egyik oszlop). Ennek egy oszlop nevének kell lennie a hivatkozott táblázatban vagy nézetben. Az oszlop neve nem ismételhető meg a column_name
listában. Az oszlopneveknek nem kell ugyanabban a sorrendben megjelenniük a UPDATE
utasításban, mint a táblázatban vagy a nézetben.
returning_clause
Értékeket ad vissza frissített sorokból, feleslegessé téve a sorok utólagos SELECT
átírását. Letöltheti az oszlop értékeit változókba vagy gazdagép változókba, vagy gyűjteményekbe vagy gazdagép tömbökbe. Nem használhatja a RETURNING
záradékot távoli vagy párhuzamos frissítésekhez. Ha az utasítás egyetlen sort sem érint, akkor a RETURNING
záradékban megadott változók értékei nincsenek meghatározva. Az returning_clause
szintaxisáról lásd: “RETURNING INTO Clause”.
SET column_name = sql_expression
Ez a záradék a sql_expression
a column_name
által azonosított oszlopra. Ha az sql_expression
hivatkozásokat tartalmaz a frissítendő táblázat oszlopaira, a hivatkozások az aktuális sor összefüggésében kerülnek feloldásra. A régi oszlopértékeket az egyenlőségjel jobb oldalán használják.
SET oszlopnév = (subquery3)
Hozzárendeli az adatbázisból a az column_name
által azonosított oszlopra. Az allekérdezésnek pontosan egy sort és egy oszlopot kell visszaadnia.
SET (oszlop_név, oszlopnév, …) = (allekérdezés4)
Hozzárendeli az adatbázisból a subquery4
a column_name
lista oszlopaihoz. Az alkérdezésnek pontosan egy sort kell visszaadnia, amely tartalmazza az összes felsorolt oszlopot. Az allekérdezés által visszaadott oszlopértékek az oszloplista oszlopaihoz vannak rendezve. Az első értéket a lista első oszlopához, a második értéket a lista második oszlopához kell rendelni, és így tovább.
sql_expression
Bármely érvényes SQL kifejezés. További információ: Oracle Database SQL Reference.
subquery
A SELECT
utasítás, amely sorok készítését adja a feldolgozáshoz. Szintaxisa olyan, mint a select_into_statement
-nek, a INTO
záradék nélkül. Lásd: “SELECT INTO utasítás”.
table_reference
Táblázat vagy nézet, amelynek hozzáférhetőnek kell lennie a UPDATE
utasítás végrehajtásakor, és amelyeknek UPDATE
jogosultságokkal kell rendelkeznie. A table_reference
szintaxisával kapcsolatban lásd: “Mentés törlése”.
TABLE (subquery2)
A egy SELECT
utasítás, amely egyetlen oszlopértéket ad vissza, amelynek beágyazott táblának vagy varray-nek kell lennie. Az TABLE
operátor tájékoztatja az Oracle-t, hogy az érték gyűjtemény, nem skaláris érték.
WHERE CURRENT OF cursor_name
A legújabb sorra vonatkozik a megadott kurzorhoz társított FETCH
utasítás feldolgozza. A kurzornak FOR
UPDATE
kell lennie, nyitottnak és egy sorban elhelyezkedőnek kell lennie. Ha a kurzor nincs nyitva, a CURRENT
OF
záradék hibát okoz. Ha a kurzor nyitva van, de még nincsenek beolvasva sorok, vagy az utolsó lekérés nem adott sorokat, a PL / SQL felveti az előre definiált kivételt NO_DATA_FOUND
. / p>
Kiválasztja az adatbázis-táblázat frissítendő sorait. Csak azok a sorok frissülnek, amelyek megfelelnek a keresési feltételnek. Ha kihagyja ezt a záradékot, a táblázat minden sora frissül.
Használati megjegyzések
Használhatja a UPDATE
WHERE
CURRENT
OF
utasítás egy nyitott kurzorból való beolvasás után (beleértve a kurzor által végrehajtott beolvasásokat is FOR
hurok), feltéve, hogy a társított lekérdezés FOR
UPDATE
. Ez az utasítás frissíti az imént beolvasott sort.
Az implicit kurzor SQL
és a kurzor attribútumai %NOTFOUND
, %FOUND
, %ROWCOUNT
és %ISOPEN
lehetővé teszi a hasznos információk elérését egy UPDATE
végrehajtásával kapcsolatban utasítás.
Példák
A 13-7. példa létrehoz egy táblázatot, amely helyes alkalmazói azonosítókat tartalmaz, de elrontott nevekkel. Ezután futtat egy UPDATE
utasítást egy összefüggő lekérdezéssel, hogy lekérdezze a helyes neveket a EMPLOYEES
táblából, és rögzítse a neveket az új táblában. .
Példákért lásd a következőket:
1-12. példa, “Tárolt alprogram létrehozása”
4-1. példa, “Egyszerű IF-THEN utasítás használata”
5-51. példa, “Sor frissítése rekord használatával”
5-52. példa, “A VISSZATÉRÉS záradékának használata rekorddal”
6-1. példa, “Adatmanipuláció PL / SQL használatával”
6-5. példa: “A CURRVAL és a NEXTVAL használata”
6-6. példa, “A ROWNUM használata”
6-38. példa, “A SAVEPOINT használata ROLLBACK használatával”
6-41. példa, “A CURRENT használata OF a kurzorról letöltött legfrissebb sor frissítéséhez “
7-1. Példa,” Példák a dinamikus SQL-re “
7-5. Példa,” Dinamikus SQL visszacsatoló ömlesztett adatokkal záradékkal “| 7-6. Példa , “Dinamikus SQL Inside FORALL utasítás”
11-6. Példa, “Visszalépés használata a FORALL használatával”
11-9. Példa, “Tömeges művelet, amely a kivételek ellenére is folytatódik”
Kapcsolódó témák
“Adatmanipuláció”
“DELETE utasítás”
“FETCH utasítás”
“INSERT utasítás”