BD-1st-2.4-lab12.tresc-1.1-Slajd16
Klauzula WHERE CURRENT OF (1)
Przejdziemy teraz do omówienia konstrukcji, umożliwiających modyfikację i usuwanie rekordów z użyciem kursora.
Jak już wcześniej wspomniano, jeśli w deklaracji kursora umieszczono klauzulę FOR UPDATE, rekordy, odczytane z bazy danych przez kursor, zostają zablokowane i przygotowane do ewentualnej modyfikacji czy też usunięcia. Jeśli bieżący rekord kursora ma zostać zmodyfikowany, wówczas operację tą realizuje się, używając standardowego polecenia UPDATE, skierowanego do relacji, z której kursor odczytał rekord. Selekcję w relacji rekordu, który zostanie zmodyfikowany (musi to być bieżący rekord kursora), zapewnia użycie klauzuli WHERE CURRENT OF <nazwa kursora>. Analogicznie wygląda sytuacja, gdy chcemy usunąć z relacji rekord, będący bieżącym rekordem kursora. Stosujemy wówczas polecenie DELETE z klauzulą WHERE CURRENT OF <nazwa kursora>.