(c) Instytut Informatyki Politechniki Poznańskiej
12
Klauzula WHERE CURRENT OF
• Klauzula WHERE CURRENT OF ma zastosowanie do poleceń UPDATE i DELETE umieszczonych wewnątrz kursora. Warunek jest spełniony tylko i wyłącznie dla bieżącej krotki w kursorze. Aby można było skorzystać z tej klauzuli, zapytanie definiujące kursor musi zawierać klauzulę FOR UPDATE OF (założenie blokady na odczytywanych krotkach)
DECLARE
  CURSOR c IS SELECT * FROM pracownicy JOIN zespoly USING (id_zesp)
    FOR UPDATE OF placa_pod;
BEGIN
  FOR c_rec IN c LOOP
    IF (c_rec.adres = 'PIOTROWO 3A') THEN
      UPDATE pracownicy SET placa_pod = 1.1 * placa_pod
      WHERE CURRENT OF c;
    END IF;
  END LOOP;
END;