Cursoare cu parametrii

    Parametrii permit transmiterea unor valori unui cursor cand acesta este deschis, si utilizarea in cererile care se executa. Aceasta inseamna ca un cursor explicit poate fi deschis de mai multe ori intr-un bloc, intorcind seturi de lucru diferite cu fiecare ocazie.
   
Parametrii sint definiti in instructiunea CURSOR astfel:

        CURSOR identif (nume_param1 tip_data,
 
                         nume_param2 tip_data, ... ) IS expresie;

    Tipurile parametrilor sunt aceleasi cu ale variabilelor scalare, dar nu primesc dimensiune. Numele parametrilor sunt pentru referire in cadrul expresiei de cerere din cadrul cursorului, si pot fi tratate ca variabile PL/SQL.
Exemplu
Urmatorul exemplu arata numarul departamentului si tipul jobului care sint transmise intr-o clauza WHERE prin parametrii param1 si param2:
        CURSOR c1 ( Param1 NUMBER,
                    Param2 CHAR ) IS SELECT ename, sal, hiredate
                                  FROM emp
                                  WHERE deptno = Param1
                                        AND
                                        job = Param2;

Cand cursorul este ulterior deschis, valorile sunt transmise pt. fiecare din parametri in mod pozitional. Pot fi utilizate  valorile din PL/SQL , variabile din limbajul gazda sau literali.
Exemplu:
        OPEN c1 (30, 'ANALYST');
        OPEN c1 (pl_num, 'CLERK');
        OPEN c1 (10, job_type); -- job_type este o variabila PL/SQL