什么是参数化游标,我们需要在哪种情况下使用它?



我想知道属于PLSQL的参数化游标,那么什么是参数化游标... 1(. 我们何时以及如何使用此游标类型? 2(. 从哪个角度我们可以使用参数化光标,意味着何时需要使用它?

它是使用参数的游标。

必要时使用它;如果光标不需要参数,则不要使用它(反之亦然(。可能的用途之一是嵌套游标循环。根据 Scott 的架构,我首先获取部门(在游标 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>

文档中的详细信息(显式光标(。

相关内容

最新更新