Kursor baze podataka je privatno SQL područje u kojem se čuvaju informacije za procesiranje određene SQL naredbe.
SAŽETAK
Oracle PL/SQL jezik koristi implicitne i eksplicitne kursore. PL/SQL implicitno deklarira kursor za sve SQL DML naredbe, kao i SELECT upite koji vraćaju samo jedan redak. Ako želimo precizniju kontrolu kod procesiranja upita, možemo deklarirati eksplicitni kursor. Kada upit vraća više od jednog retka, tada obavezno moramo deklarirati eksplicitni kursor. Kursor varijable (REF kursori) su neka vrsta pokazivača na retke – rezultate upita. Koristimo ih kada želimo izvršiti upit u jednom potprogramu, a rezultat procesirati u drugom potprogramu (koji može biti pisan i u drugom jeziku).
Koristeći dinamički SQL, SQL naredbe možemo graditi dinamički za vrijeme izvršavanja programa i tako možemo pisati fleksibilnije aplikacije, kod kojih (aplikacija) puni tekst SQL naredbe može biti nepoznat u vrijeme prevođenja programa. Za dinamički SQL možemo koristiti “stari” paket DBMS_SQL ili “novi” dinamički SQL. U Oracle 11g možemo koristiti nove naredbe DBMS_SQL.TO_CURSOR_NUMBER i DBMS_SQL.TO_REFCURSOR za pretvaranje REF kursora u DBMS_SQL kursor i obrnuto.