Instrukcja UPDATE

Instrukcja UPDATE zmienia wartości określonych kolumn w co najmniej jednym wierszu tabeli lub widoku. Pełny opis instrukcji SQL UPDATE można znaleźć w dokumencie Oracle Database SQL Reference.

Składnia

Instrukcja aktualizacji :: =

Opis ilustracji update_statement.gif

Opis słowa kluczowego i parametru

alias

Inna (zwykle krótka) nazwa tabeli lub widoku, do którego się odwołuje, zwykle używana w klauzuli WHERE.

nazwa_kolumny

Kolumna (lub jedna z kolumn) do zaktualizowania. Musi to być nazwa kolumny w tabeli lub widoku, do którego się odwołuje. Nazwy kolumny nie można powtórzyć na liście column_name. Nazwy kolumn nie muszą pojawiać się w instrukcji UPDATE w tej samej kolejności, w jakiej występują w tabeli lub widoku.

returning_clause

Zwraca wartości ze zaktualizowanych wierszy, eliminując potrzebę SELECT wierszy później. Wartości kolumn można pobrać do zmiennych lub zmiennych języka macierzystego albo do kolekcji lub tablic hostów. Nie można używać klauzuli RETURNING w przypadku aktualizacji zdalnych lub równoległych. Jeśli instrukcja nie wpływa na żadne wiersze, wartości zmiennych określonych w klauzuli RETURNING są niezdefiniowane. Aby zapoznać się ze składnią returning_clause, zobacz „RETURNING INTO Clause”.

SET column_name = sql_expression

Ta klauzula przypisuje wartość sql_expression do kolumny określonej przez column_name. Jeśli sql_expression zawiera odniesienia do kolumn w aktualizowanej tabeli, są one rozstrzygane w kontekście bieżącego wiersza. Stare wartości kolumn są używane po prawej stronie znaku równości.

SET nazwa_kolumny = (podzapytanie3)

Przypisuje wartość pobraną z bazy danych przez subquery3 do kolumny oznaczonej column_name. Podzapytanie musi zwracać dokładnie jeden wiersz i jedną kolumnę.

SET (nazwa_kolumny, nazwa_kolumny, …) = (podzapytanie4)

Przypisuje wartości pobrane z bazy danych przez subquery4 do kolumn na liście column_name. Podzapytanie musi zwracać dokładnie jeden wiersz zawierający wszystkie wymienione kolumny. Wartości kolumn zwrócone przez podzapytanie są przypisywane do kolumn na liście kolumn w kolejności. Pierwsza wartość jest przypisywana do pierwszej kolumny na liście, druga wartość do drugiej kolumny na liście itd.

sql_expression

Dowolne prawidłowe wyrażenie SQL. Aby uzyskać więcej informacji, zobacz Oracle Database SQL Reference.

podzapytanie

Instrukcja SELECT, która udostępnia zestaw wierszy do przetworzenia. Jego składnia jest podobna do składni select_into_statement bez klauzuli INTO. Zobacz „Instrukcja SELECT INTO”.

table_reference

Tabela lub widok, który musi być dostępny po wykonaniu instrukcji UPDATE i które musisz mieć uprawnienia UPDATE. Aby zapoznać się ze składnią table_reference, zobacz „Instrukcja DELETE”.

TABLE (subquery2)

Operand TABLE to instrukcja SELECT, która zwraca wartość w jednej kolumnie, która musi być tabelą zagnieżdżoną lub zmienną. Operator TABLE informuje Oracle, że wartość jest zbiorem, a nie wartością skalarną.

WHERE CURRENT OF nazwa_kursora

Odnosi się do ostatniego wiersza przetwarzane przez instrukcję FETCH powiązaną z określonym kursorem. Kursor musi być FOR UPDATE i musi być otwarty i umieszczony w wierszu. Jeśli kursor nie jest otwarty, klauzula CURRENT OF powoduje błąd. Jeśli kursor jest otwarty, ale żadne wiersze nie zostały pobrane lub ostatnie pobieranie nie zwróciło żadnych wierszy, PL / SQL wywołuje predefiniowany wyjątek NO_DATA_FOUND.

WHERE search_condition

Wybiera wiersze do zaktualizowania w tabeli bazy danych. Aktualizowane są tylko wiersze spełniające warunek wyszukiwania. Jeśli pominiesz tę klauzulę, wszystkie wiersze w tabeli zostaną zaktualizowane.

Uwagi dotyczące użytkowania

Możesz użyć UPDATE WHERE CURRENT OF po pobraniu z otwartego kursora (łącznie z pobieraniem przez kursor FOR pętla), pod warunkiem, że powiązane zapytanie to FOR UPDATE. Ta instrukcja aktualizuje wiersz, który właśnie został pobrany.

Ukryty kursor SQL i atrybuty kursora %NOTFOUND, %FOUND, %ROWCOUNT i %ISOPEN pozwalają uzyskać dostęp do przydatnych informacji na temat wykonywania UPDATE

Przykłady

Przykład 13.7 tworzy tabelę z poprawnymi identyfikatorami pracowników, ale zniekształconymi nazwami. Następnie uruchamia instrukcję UPDATE ze skorelowanym zapytaniem, aby pobrać prawidłowe nazwy z tabeli EMPLOYEES i naprawić nazwy w nowej tabeli .

Przykłady, patrz:

Przykład 1-12, „Tworzenie zapisanego podprogramu”
Przykład 4-1, „Używanie prostej instrukcji IF-THEN”
Przykład 5-51, „Aktualizacja wiersza przy użyciu rekordu”
Przykład 5-52, „Używanie klauzuli RETURNING z rekordem”
Przykład 6-1, „Manipulacja danymi za pomocą PL / SQL”
Przykład 6-5, „Używanie CURRVAL i NEXTVAL”
Przykład 6-6, „Używanie ROWNUM”
Przykład 6-38, „Używanie SAVEPOINT z ROLLBACK”
Przykład 6-41, „Używanie CURRENT OF, aby zaktualizować ostatni wiersz pobrany z kursora „
Przykład 7-1,” Przykłady dynamicznego języka SQL „
Przykład 7-5,” Dynamiczny SQL z klauzulą RETURNING BULK COLLECT INTO „
Przykład 7-6 , „Instrukcja Dynamic SQL Inside FORALL”
Przykład 11-6, „Stosowanie wycofywania zmian z FORALL”
Przykład 11-9, „Operacja zbiorcza, która jest kontynuowana pomimo wyjątków”

Tematy pokrewne

„Manipulacja danymi”
„Instrukcja DELETE”
„Instrukcja FETCH”
„Instrukcja INSERT”

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *