Zmienne kursorowe

Autor: Marcin Kasiński
21.01.2011 13:24:00 +0200

Zmienne kursorowe zachowujmą sie jak zwykłe kursory, z tym że jemu dymicznie przypisujemy zapytanie. Oznacza to, że w przypadku zwykłego kursora zapytanie mu przypisane jest statyczne. W przypadku zmeinnej kursorowej zapytanei jest generowane dynamicznie, a to oznacza, że temu kursorowi możemy przypisać dowolne zapytanie zaleznie od okoliczności. Tworzenie zmiennej kursorowej przebiega w dwóch etapach. W pierwszej fazie musimy zdefiniować specjalny typ kursorowy wg. poniższej składni:

TYPE nazwa_typu IS REF CURSOR [ RETURN zwracany_typ];

gdzie:

  • zwracany_typtyp rekordowy zwracany przez kursor

Następnie deklarujemy zmienną o typie zdefiniowanym wcześniej. Skłądnia pozwalająca otworzyć kursor ma postać:

OPEN nazwa_zmiennej_kursorowej FOR zapytanie_SQL;

Przykłady wykorzystania zmiennych kursorowych


DECLARE
TYPE CurTYPE IS REF CURSOR RETURN emp%ROWTYPE;
Cur CurTYPE;
...
BEGIN
OPEN Cur FOR select name from emp;
LOOP
FETCH Cur INTO rec;
EXIT WHEN Cur%NOTFOUND;
...
END LOOP;



DECLARE
TYPE CurTYPE IS REF CURSOR RETURN tab%ROWTYPE;
TYPE NameList IS TABLE OF tab%TYPE;
Cur CurTYPE;
Names NameList;
BEGIN
OPEN Cur FOR select name from tab;
FETCH Cur BULK COLLECT INTO Names;
...
END;

powrót
Zachęcam do przedstawienia swoich uwag i opinii w polu komentarzy.

Komentarze

uluxage

<a href="https://kamagra-viagra.ar-go.pl/">kamagra</a>

uluxage 2021-09-15 17:17:54

Dodaj Komentarz