Příkaz UPDATE

Příkaz UPDATE mění hodnoty zadaných sloupců v jednom nebo více řádcích v tabulce nebo pohledu. Úplný popis UPDATE příkazu SQL naleznete v příručce Oracle Database SQL Reference.

Syntaxe

prohlášení o aktualizaci :: =

Popis ilustrace update_statement.gif

Popis klíčových slov a parametrů

alias

Jiný (obvykle krátký) název odkazované tabulky nebo pohledu, obvykle používaný v klauzuli WHERE.

název_sloupce

Sloupec (nebo jeden ze sloupců), který se má aktualizovat. Musí to být název sloupce v odkazované tabulce nebo zobrazení. Název sloupce nelze v seznamu column_name opakovat. Názvy sloupců se nemusí v příkazu UPDATE zobrazovat ve stejném pořadí, v jakém se zobrazují v tabulce nebo zobrazení.

returns_clause

Vrací hodnoty z aktualizovaných řádků, což eliminuje potřebu SELECT řádků poté. Hodnoty sloupců můžete načíst do proměnných nebo hostitelských proměnných nebo do kolekcí nebo polí hostitele. Klauzuli RETURNING nelze použít pro vzdálené nebo paralelní aktualizace. Pokud příkaz neovlivní žádné řádky, hodnoty proměnných uvedených v klauzuli RETURNING nejsou definovány. Syntaxi returning_clause naleznete v části „RETURNING INTO“.

SET column_name = sql_expression

V této klauzuli je přiřazena hodnota sql_expression do sloupce označeného column_name. Pokud sql_expression obsahuje odkazy na sloupce v aktualizované tabulce, jsou odkazy vyřešeny v kontextu aktuálního řádku. Staré hodnoty sloupců se používají na pravé straně znaménka rovná se.

SET column_name = (subquery3)

Přiřadí hodnotu načtenou z databáze pomocí subquery3 do sloupce označeného column_name. Poddotaz musí vrátit přesně jeden řádek a jeden sloupec.

SET (název_sloupce, název_sloupce, …) = (poddotaz4)

Přiřadí hodnoty načtené z databáze pomocí subquery4 do sloupců v seznamu column_name. Poddotaz musí vrátit přesně jeden řádek, který obsahuje všechny uvedené sloupce. Hodnoty sloupců vrácené poddotazem jsou přiřazeny ke sloupcům v seznamu sloupců v pořadí. První hodnota je přiřazena k prvnímu sloupci v seznamu, druhá hodnota je přiřazena druhému sloupci v seznamu atd.

sql_expression

Libovolný platný výraz SQL. Další informace najdete v příručce Oracle Database SQL Reference.

poddotaz

Příkaz SELECT, který poskytuje sadu řádků pro zpracování. Jeho syntax je podobná syntaxi select_into_statement bez klauzule INTO. Viz „Příkaz SELECT INTO“.

table_reference

Tabulka nebo zobrazení, které musí být přístupné při provádění příkazu UPDATE a pro které musíte mít UPDATE oprávnění. Syntaxe table_reference najdete v části „Příkaz DELETE“.

TABLE (subquery2)

Operand TABLE je SELECT příkaz, který vrací hodnotu jednoho sloupce, kterou musí být vnořená tabulka nebo varray. Provozovatel TABLE informuje společnost Oracle, že hodnota je kolekce, nikoli skalární hodnota.

KDE AKTUÁLNĚ cursor_name

Odkazuje na poslední řádek zpracováno příkazem FETCH přidruženým k uvedenému kurzoru. Kurzor musí být FOR UPDATE a musí být otevřený a umístěný na řádku. Pokud kurzor není otevřený, klauzule CURRENT OF způsobí chybu. Pokud je kurzor otevřený, ale nebyly načteny žádné řádky nebo poslední načtení nevrátilo žádné řádky, PL / SQL vyvolá předdefinovanou výjimku NO_DATA_FOUND.

WHERE search_condition

Vybírá, které řádky se mají aktualizovat v databázové tabulce. Aktualizovány jsou pouze řádky, které splňují podmínku hledání. Pokud tuto klauzuli vynecháte, aktualizují se všechny řádky v tabulce.

Poznámky k použití

Můžete použít UPDATE WHERE CURRENT OF prohlášení po načtení z otevřeného kurzoru (včetně načtení provedených kurzorem FOR smyčka), za předpokladu, že přidružený dotaz je FOR UPDATE. Toto prohlášení aktualizuje právě načtený řádek.

Implicitní kurzor SQL a atributy kurzoru %NOTFOUND, %FOUND, %ROWCOUNT a %ISOPEN vám umožní přístup k užitečným informacím o provedení UPDATE prohlášení.

Příklady

Příklad 13-7 vytvoří tabulku se správnými ID zaměstnanců, ale zkreslenými jmény. Potom spustí příkaz UPDATE s korelovaným dotazem, aby načetl správná jména z EMPLOYEES tabulky a opravil názvy v nové tabulce .

Příklady najdete v následujících odstavcích:

Příklad 1-12, „Vytvoření uloženého podprogramu“
Příklad 4-1, „Použití jednoduchého příkazu IF-THEN“
Příklad 5-51, „Aktualizace řádku pomocí záznamu“
Příklad 5-52, „Použití klauzule RETURNING se záznamem“
Příklad 6-1, „Manipulace s daty pomocí PL / SQL“
Příklad 6-5, „Použití CURRVAL a NEXTVAL“
Příklad 6-6, „Použití ROWNUM“
Příklad 6-38, „Použití SAVEPOINT s ROLLBACK“
Příklad 6-41, „Použití CURRENT OF aktualizovat nejnovější řádek načtený z kurzoru „
Příklad 7-1,“ Příklady dynamického SQL „
Příklad 7-5,“ Dynamický SQL s RETURNING BULK COLLECT INTO „“ Příklad 7-6 „Dynamický příkaz SQL Inside FORALL“
Příklad 11-6, „Použití vrácení zpět s FORALL“
Příklad 11-9, „Hromadná operace, která pokračuje i přes výjimky“

Související témata

„Manipulace s daty“
„Příkaz DELETE“
„Příkaz FETCH“
„Příkaz INSERT“

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *