Skip navigation

Explicit kurzorok

Explicit kurzorok

Az explicit kurzorokat a deklarációs szegmensben névvel látjuk el és megadjuk a hozzá tartozó lekérdezést: 

CURSOR kurzornév IS lekérdezés;

Az explicit kurzorokat a végrehajtó szegmensben az OPEN kurzornév; utasítással nyitjuk meg, ekkor hajtódik végre a hozzátartozó lekérdezés. A kurzor megnyitásakor a kurzormutató az eredménytábla első sora előtt áll.

Az egyes sorokat a FETCH kurzornév INTO változólista; utasítással dolgozzuk fel. Az utasítás hatására a a kurzormutató a következő sorra lép és beolvassa az oszlopok értékeit a változólistába. A változólistába annyi változót kell megadni, ahány oszlopot kérdeztünk le a kurzor lekérdezésében (természetesen az egyes típusoknak is meg kell egyezniük).

A feldolgozás végén a kurzort a CLOSE kurzornév; utasítással zárjuk le.

Példa explicit kurzorra

DECLARE
    v_veznev DEMO.munkatars.vezeteknev%TYPE;
    v_kernev DEMO.munkatars.keresztnev%TYPE;
    v_tel DEMO.munkatars.telefon%TYPE;
    CURSOR nev_es_tel IS
        SELECT vezeteknev, keresztnev, telefon
        FROM DEMO.munkatars
        ORDER BY vezeteknev, keresztnev;
BEGIN 
    OPEN nev_es_tel;
    LOOP
        FETCH nev_es_tel
        INTO v_veznev, v_kernev, v_tel;
        EXIT WHEN nev_es_tel%NOTFOUND;
        DBMS_OUTPUT.PUT_LINE(v_veznev || ' ' || v_kernev || ': ' || v_tel);
    END LOOP;
    CLOSE nev_es_tel;
END;