Oracle Kursor dla pętli

Oracle Kursor dla pętli
Kursor pętli to rodzaj pętli, który pozwala pobierać i przetwarzać wiersze z kursora bazy danych, nie martwiąc się o ręczne obsługę cyklu wykonania.

Kursor pętli jest rozszerzeniem pętli dla PL/SQL i umożliwia wykonanie bloku kodu dla każdego wiersza w uzyskanym zestawie. Jest to bardzo przydatne, ponieważ pozwala szybko i wydajnie wykonywać obszerne obliczenia w jednym obliczeniach bez ładowania danych do pamięci.

Oracle Kursor dla pętli

Pętla For pobiera wiersz z uzyskanego zestawu w indeksie pętli dla każdej iteracji. Jeśli nie ma wiersza, pętla zamyka kursor.

Poniżej pokazuje podstawową składnię kursora dla pętli w Oracle:

Do zapisu w nazwie cursor
PĘTLA
-- Zastosuj ten blok do każdego wiersza
Pętla końcowa;

W dostarczonej składni rekord reprezentuje nazwę zmiennej, która przedstawiała każdy wiersz w kursorze.

Nazwa_kursor w pętli określa jawny kursor, przez który chcesz zapętlić. Zauważ, że kursor musi być otwarty i pobrany w rekordzie przed użyciem go w kursorze do pętli.

Jeśli nie chcesz tworzyć jawnego kursora, For Loop domyślnie tworzy indeks pętli jako zmienną rekordową %wiersz.

Oracle Kursor dla przykładu pętli

Spójrzmy na podstawowe przykłady kursora dla pętli w bazach danych Oracle.

ogłosić
Cursor emp_cursor jest
Wybierz nazwę pierwszej nazwy, Last_name
od pracowników;
zaczynać
dla pracownika w EMP_Cursor
pętla
Dbms_output.Put_line (pracownik.First_name || „|| Pracownik.nazwisko);
Pętla końcowa;
koniec;

W dostarczonym kodzie deklarujemy kursor o nazwie emp_cursor. Następnie wypełniamy ten kursor z danych z tabeli pracowników za pomocą kolumn pierwszej nazwy_nazwy i last_name.

Następnie używamy kursora do pobierania i przetwarzania danych w każdym wierszu z zestawu wyników. Zauważ, że zmienna pracownika przechowuje każdy wiersz w EMP_Cursor.

Pętla łączy kolumny pierwszej nazwy_name i last_name i drukuje wynik za pomocą DBMS_OUTPUT.Funkcja Put_Line.

Silnik bazy danych automatycznie zamyka kursor po zakończeniu pętli.

Powinno to zwrócić następujące wyniki, pokazując, w jaki sposób możemy użyć jawnej definicji kursora do przetwarzania danych z tabeli:

Oracle Implicit Cursor

Jeśli nie chcesz tworzyć jawnego kursora, możesz pozwolić silnikowi bazy danych na utworzenie jednego i zarządzanie nim, pomijając nazwę kursora, jak pokazano następująco:

ZACZYNAĆ
Dla pracownika (wybierz nazwę pierwszej, nazwa last_name
Od pracowników) pętla
Dbms_output.Put_line (pracownik.First_name || „|| Pracownik.nazwisko);
Pętla końcowa;
KONIEC;

Powinno to zwrócić podobny wynik jako jawny kursor.

Wniosek

W tym poście natknąłeś się na kursor dla pętli w bazach danych Oracle, aby pobrać i przetworzyć każdy wiersz z zestawu wyników.