BD-1st-2.4-lab12.tresc-1.1-Slajd18
Kursor niejawny (1)
Omówimy teraz kursory niejawne. Są one automatycznie tworzone dla każdego polecenia INSERT, UPDATE, DELETE i SELECT INTO, jakie zostaje umieszczone w programie PL/SQL. Kursor niejawny nosi zawsze nazwę „SQL” i jest otwierany bezpośrednio przed wykonaniem polecenia i zamykany zaraz po jego zakończeniu. Kursora niejawnego używa się tylko do sprawdzenia stanu ostatnio realizowanego polecenia. Dla polecenia UPDATE możemy sprawdzić, ile rekordów zostało uaktualnionych, dla polecenia DELETE ile rekordów usunięto, dla polecenia INSERT – ile rekordów zostało wstawionych. W tym celu wykorzystuje się znane nam już atrybuty kursora. Atrybut %FOUND dla kursora niejawnego ma wartość TRUE jeśli ostatnie polecenie odczytało w przypadku SELECT INTO lub przetworzyło dla pozostałych poleceń chociaż jeden rekord, wartość FALSE gdy polecenie nie odczytało/nie przetworzyło żadnego rekordu. Wartości atrybutu %NOTFOUND są komplementarne w stosunku do wartości atrybutu %FOUND – TRUE jeśli ostatnie polecenie nie odczytało/nie przetworzyło żadnego rekordu, FALSE w przeciwnym wypadku. Jeśli interesuje nas liczba rekordów odczytanych/ przetworzonych przez ostatnie polecenie, posługujemy się atrybutem %ROWCOUNT. Atrybutu %ISOPEN dla kursora niejawnego nie używamy – ma on zawsze wartość FALSE.
Korzystając z atrybutów kursora niejawnego należy pamiętać, że opisują one stan ostatniego polecenia – każde polecenie ustawia na nowo wartości atrybutów.