Kursor do aktualizacji Oracle do aktualizacji

Podsumowanie: w tym samouczku dowiesz się, jak używać kursora aktualizowalnego Oracle do aktualizowania danych w tabeli.

Wprowadzenie do Oracle Cursor FOR UPDATE

Czasami chcesz zablokować zestaw wierszy, zanim będziesz mógł je zaktualizować w swoim programie. Oracle udostępnia klauzulę FOR UPDATE instrukcji SELECT w aktualizowanym kursorze, aby wykonać tego rodzaju mechanizm blokujący.

Oto składnia deklarowania aktualizowalnego kursora:

Nowa składnia to FOR UPDATE słowa kluczowe.

Po otwarciu kursora Oracle zablokuje wszystkie wiersze wybrane za pomocą instrukcji SELECT ... FOR UPDATE w tabelach określonych w FROM klauzula. Te wiersze pozostaną zablokowane do czasu zamknięcia kursora lub zakończenia transakcji za pomocą COMMIT lub ROLLBACK.

Pamiętaj, że Oracle blokuje wszystkie wiersze zwrócone przez SELECT ... FOR UPDATE podczas aktualizacji, dlatego powinieneś mieć klauzulę WHERE, aby wybrać tylko niezbędne wiersze być zablokowane.

Jeśli masz określoną kolumnę, którą chcesz zaktualizować, możesz ją wymienić w klauzuli FOR UPDATE w następujący sposób:

W tym przypadku Oracle blokuje tylko wiersze tabeli, której nazwa kolumny jest wymieniona w klauzuli FOR UPDATE OF.

Pamiętaj, że jeśli użyjesz tylko klauzuli FOR UPDATE i nie dodasz jednej lub więcej kolumn po słowie kluczowym OF, Oracle będzie wtedy zablokuj wszystkie wybrane wiersze we wszystkich tabelach wymienionych w klauzuli FROM.

Przykład Oracle Cursor FOR UPDATE

Weź pod uwagę następujące kwestie przykład.

Jak to działa.

  • Najpierw zadeklaruj aktualizowalny kursor, który aktualizuje kredyty klientów, których kredyty są większe niż zero.
  • Dalej , zapętlaj wiersze w kursorach.
  • Następnie uzyskaj liczbę zamówień dla każdego klienta.
  • Następnie przypisz przyrost kredytu na podstawie liczby zamówień.
  • Na koniec zaktualizuj kredyt klienta.

W tym samouczku nauczyłeś się, jak używać aktualizowalnego kursora Oracle do aktualizowania danych w tabeli.

  • Czy ten samouczek był pomocny?
  • Tak Nie

Dodaj komentarz

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