kursor PL/SQL dla instrukcji LOOP

0 Comments

Podsumowanie: w tym samouczku dowiesz się, jak używać kursora PL/SQL FOR LOOP do pobierania i przetwarzania każdego rekordu z kursora.

Wprowadzenie do PL/SQL kursor dla instrukcji LOOP

kursorFOR LOOP jest eleganckim rozszerzeniem instrukcji numerycznejFOR LOOP.

LiczbaFOR LOOP wykonuje ciało pętli raz dla każdej wartości całkowitej w określonym zakresie., Podobnie, kursor FOR LOOP wykonuje ciało pętli raz dla każdego wiersza zwracanego przez zapytanie powiązane z kursorem.

miłą cechą kursoraFOR LOOP jest to, że pozwala On pobrać każdy wiersz z kursora bez ręcznego zarządzania cyklem wykonywania, tj.OPEN,FETCH ICLOSE.

kursorFOR LOOP domyślnie tworzy indeks pętli jako zmienną rekordową z typem wiersza, w którym kursor powraca, a następnie otwiera kursor.,

w każdej iteracji pętli kursorFOR LOOP pobiera wiersz z ustawionego wyniku do indeksu pętli. Jeśli nie ma wiersza do pobrania, kursorFOR LOOP zamyka kursor.

kursor jest również zamykany, jeśli instrukcja wewnątrz pętli przenosi sterowanie poza pętlę, np. EXIT I GOTO, lub podnosi wyjątek.,

poniższe ilustruje składnię kursora FOR LOOP polecenie:

1) rekord

recordjest nazwą indeksu, który kursor FOR LOOPoświadczenie deklaruje domyślnie jako %ROWTYPE zmienną rekordową typu kursora.

zmiennarecord jest lokalna dla polecenia kursoraFOR LOOP. Oznacza to, że można odwoływać się do niego tylko wewnątrz pętli, a nie na zewnątrz., Po zakończeniu wykonywania polecenia FOR LOOP zmienna record staje się niezdefiniowana.

2) cursor_name

cursor_name jest nazwą jawnego kursora, który nie jest otwarty podczas uruchamiania pętli.

zauważ, że oprócz nazwy kursora, możesz użyćSELECT instrukcji, jak pokazano poniżej:

w tym przypadku kursorFOR LOOP deklaruje, otwiera, pobiera i zamyka Ukryty kursor., Jednak ukryty kursor jest wewnętrzny, dlatego nie można się do niego odwoływać.

zauważ, że baza danych Oracle automatycznie optymalizuje kursorFOR LOOP tak, aby działał podobnie do zapytaniaBULK COLLECT. Chociaż kod wygląda tak, jakby pobierał jeden wiersz na raz, Oracle Database pobiera wiele wierszy naraz i umożliwia przetwarzanie każdego wiersza z osobna.

kursor PL/SQL dla przykładów pętli

przyjrzyjmy się przykładom użycia kursoraFOR LOOP aby zobaczyć, jak to działa.,

a) kursor PL/SQL dla pętli przykład

poniższy przykład deklaruje jawny kursor i używa go w instrukcji kursor FOR LOOP.

w tym przykładzie SELECT polecenie kursora pobiera dane z tabeli products. InstrukcjaFOR LOOP otwierała, pobierała każdy wiersz w zestawie wyników, wyświetlała informacje o produkcie i zamykała kursor.,

B) kursor dla pętli z instrukcją SELECT przykład

poniższy przykład jest odpowiednikiem powyższego przykładu, ale używa zapytania w instrukcji kursoraFOR LOOP.

w tym samouczku nauczyłeś się używać kursora PL/SQL FOR LOOP do pobierania danych z kursora.

  • czy ten tutorial był pomocny?
  • YesNo


Dodaj komentarz

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