Что такое параметризованный курсор и в каком случае нам нужно это использовать? - PullRequest
0 голосов
/ 07 октября 2019

Я хочу знать о параметризованном курсоре, который принадлежит PLSQL, так что же такое параметризованный курсор ... 1). Когда и как мы можем использовать этот тип курсора? 2). С какой точки зрения мы можем использовать параметризованный курсор, значит, когда нам нужно его использовать?

1 Ответ

3 голосов
/ 07 октября 2019

Это курсор, который использует параметр.

Используйте его при необходимости;если для курсора не нужен параметр, не используйте его (и наоборот). Одним из возможных применений будет вложенный курсорный цикл. Основываясь на схеме Скотта, я сначала выбираю отделы (в цикле курсора FOR), а затем перебираю всех сотрудников (используя явный курсор), принадлежащих этому отделу, который передается в качестве параметра:

SQL>   declare
  2    cursor c1 (par_deptno in number) is --> PAR_DEPTNO is cursor's parameter
  3      select ename
  4      from emp
  5      where deptno = par_deptno;
  6    c1r c1%rowtype;
  7  begin
  8    for cur_d in (select deptno, dname from dept) loop
  9      dbms_output.put_line('Dept. ' || cur_d.dname);
 10      dbms_output.put_line('  List of Employees:');
 11
 12      open c1 (cur_d.deptno);           --> when opening the cursor, pass parameter's value
 13      loop
 14        fetch c1 into c1r;
 15        exit when c1%notfound;
 16
 17        dbms_output.put_line('  - ' || c1r.ename);
 18      end loop;
 19      close c1;
 20    end loop;
 21  end;
 22  /
Dept. ACCOUNTING
List of Employees:
- CLARK
- KING
- MILLER
Dept. RESEARCH
List of Employees:
- SMITH
- JONES
- SCOTT
- ADAMS
- FORD
Dept. SALES
List of Employees:
- ALLEN
- WARD
- MARTIN
- BLAKE
- TURNER
- JAMES
Dept. OPERATIONS
List of Employees:

PL/SQL procedure successfully completed.

SQL>

Дополнительная информация в документации ( Явный курсор ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...