UPDATE-Anweisung

Die Anweisung UPDATE ändert die Werte der angegebenen Spalten in einer oder mehreren Zeilen in einer Tabelle oder Ansicht. Eine vollständige Beschreibung der SQL-Anweisung UPDATE finden Sie in der Oracle Database SQL-Referenz.

Syntax

update-Anweisung :: =

Beschreibung der Abbildung update_statement.gif

Schlüsselwort- und Parameterbeschreibung

Alias

Ein anderer (normalerweise kurzer) Name für die referenzierte Tabelle oder Ansicht, der normalerweise in der WHERE -Klausel verwendet wird.

Spaltenname

Die zu aktualisierende Spalte (oder eine der Spalten). Es muss der Name einer Spalte in der referenzierten Tabelle oder Ansicht sein. Ein Spaltenname kann in der Liste column_name nicht wiederholt werden. Spaltennamen müssen in der Anweisung UPDATE nicht in derselben Reihenfolge angezeigt werden, in der sie in der Tabelle oder Ansicht angezeigt werden.

Rückgabeklausel

Gibt Werte zurück aus aktualisierten Zeilen, sodass die Zeilen danach nicht mehr SELECT sein müssen. Sie können die Spaltenwerte in Variablen oder Hostvariablen oder in Sammlungen oder Hostarrays abrufen. Sie können die Klausel RETURNING nicht für Remote- oder parallele Updates verwenden. Wenn die Anweisung keine Zeilen beeinflusst, sind die Werte der in der RETURNING -Klausel angegebenen Variablen undefiniert. Die Syntax von returning_clause finden Sie unter „RETURNING INTO-Klausel“.

SET column_name = sql_expression

Diese Klausel weist den Wert von sql_expression zu der durch column_name gekennzeichneten Spalte. Wenn sql_expression Verweise auf Spalten in der zu aktualisierenden Tabelle enthält, werden die Verweise im Kontext der aktuellen Zeile aufgelöst. Die alten Spaltenwerte werden auf der rechten Seite des Gleichheitszeichens verwendet.

SET column_name = (Unterabfrage3)

Weist den von zu der durch column_name gekennzeichneten Spalte. Die Unterabfrage muss genau eine Zeile und eine Spalte zurückgeben.

SET (Spaltenname, Spaltenname, …) = (Unterabfrage4)

Weist die von subquery4 zu den Spalten in der Liste column_name. Die Unterabfrage muss genau eine Zeile zurückgeben, die alle aufgelisteten Spalten enthält. Die von der Unterabfrage zurückgegebenen Spaltenwerte werden den Spalten in der Spaltenliste der Reihe nach zugewiesen. Der erste Wert wird der ersten Spalte in der Liste zugewiesen, der zweite Wert wird der zweiten Spalte in der Liste zugewiesen usw.

sql_expression

Jeder gültige SQL-Ausdruck. Weitere Informationen finden Sie in der Oracle Database SQL-Referenz.

Unterabfrage

Eine SELECT -Anweisung, die eine Reihe von Zeilen für die Verarbeitung bereitstellt. Die Syntax entspricht der von select_into_statement ohne die Klausel INTO. Siehe „SELECT INTO-Anweisung“.

Tabellenreferenz

Eine Tabelle oder Ansicht, auf die zugegriffen werden muss, wenn Sie die Anweisung UPDATE ausführen, und für Sie müssen über die Berechtigungen UPDATE verfügen. Die Syntax von table_reference finden Sie unter „DELETE-Anweisung“.

TABLE (Unterabfrage2)

Der Operand von TABLE ist eine SELECT -Anweisung, die einen einzelnen Spaltenwert zurückgibt, der eine verschachtelte Tabelle oder ein Varray sein muss. Der Operator TABLE informiert Oracle, dass der Wert eine Auflistung und kein skalarer Wert ist.

WHERE CURRENT OF cursor_name

Bezieht sich auf die letzte Zeile wird von der Anweisung FETCH verarbeitet, die dem angegebenen Cursor zugeordnet ist. Der Cursor muss FOR UPDATE sein und muss offen und in einer Zeile positioniert sein. Wenn der Cursor nicht geöffnet ist, verursacht die Klausel CURRENT OF einen Fehler. Wenn der Cursor geöffnet ist, aber keine Zeilen abgerufen wurden oder der letzte Abruf keine Zeilen zurückgegeben hat, löst PL / SQL die vordefinierte Ausnahme NO_DATA_FOUND aus.

WHERE search_condition

Wählt aus, welche Zeilen in der Datenbanktabelle aktualisiert werden sollen. Es werden nur Zeilen aktualisiert, die die Suchbedingung erfüllen. Wenn Sie diese Klausel weglassen, werden alle Zeilen in der Tabelle aktualisiert.

Verwendungshinweise

Sie können die UPDATE WHERE CURRENT OF Anweisung nach einem Abruf von einem geöffneten Cursor (einschließlich Abrufen durch einen Cursor FOR -Schleife), vorausgesetzt, die zugehörige Abfrage lautet FOR UPDATE. Diese Anweisung aktualisiert die gerade abgerufene Zeile.

Der implizite Cursor SQL und die Cursorattribute %NOTFOUND, %FOUND, %ROWCOUNT und %ISOPEN können Sie auf nützliche Informationen zur Ausführung eines UPDATE zugreifen Anweisung.

Beispiele

Beispiel 13-7 erstellt eine Tabelle mit korrekten Mitarbeiter-IDs, aber verstümmelten Namen. Anschließend wird eine UPDATE -Anweisung mit einer korrelierten Abfrage ausgeführt, um die korrekten Namen aus der Tabelle EMPLOYEES abzurufen und die Namen in der neuen Tabelle zu korrigieren

Beispiele finden Sie im Folgenden:

Beispiel 1-12, „Erstellen eines gespeicherten Unterprogramms“
Beispiel 4-1, „Verwenden einer einfachen IF-THEN-Anweisung“
Beispiel 5-51, „Aktualisieren einer Zeile mithilfe eines Datensatzes“
Beispiel 5-52, „Verwenden der RETURNING-Klausel mit einem Datensatz“
Beispiel 6-1, „Datenmanipulation mit PL / SQL“
Beispiel 6-5, „Verwenden von CURRVAL und NEXTVAL“
Beispiel 6-6, „Verwenden von ROWNUM“
Beispiel 6-38, „Verwenden von SAVEPOINT mit ROLLBACK“
Beispiel 6-41, „Verwenden von CURRENT“ OF, um die letzte von einem Cursor abgerufene Zeile zu aktualisieren „
Beispiel 7-1,“ Beispiele für dynamisches SQL „
Beispiel 7-5,“ Dynamisches SQL mit RETURNING BULK COLLECT INTO-Klausel „
Beispiel 7-6 , „Dynamic SQL Inside FORALL-Anweisung“
Beispiel 11-6, „Verwenden von Rollbacks mit FORALL“
Beispiel 11-9, „Massenoperation, die trotz Ausnahmen fortgesetzt wird“

Verwandte Themen

„Datenmanipulation“
„DELETE-Anweisung“
„FETCH-Anweisung“
„INSERT-Anweisung“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.