oracle存储过程中游标的使用

一. 使用for循环游标:

1. 定义游标(游标就是一个小集合)

2. 定义游标变量

3. 使用for循环游标

declare
  -- 定义游标c_job
  cursor c_job is
    select empno, ename, job, sal from emp where job = 'MANAGER';
    
  -- 定义游标变量c_row
  c_row c_job%rowtype;
begin
  -- 循环游标,用游标变量c_row存循环出的值
  for c_row in c_job loop
    dbms_output.put_line(c_row.empno || '-' || c_row.ename || '-' ||
                         c_row.job || '-' || c_row.sal);
  end loop;
end;

2. fetch游标:

使用的时候必须明确的打开和关闭

declare
  --定义游标c_job
  cursor c_job is
    select empno, ename, job, sal from emp where job = 'MANAGER';

  --定义游标变量c_row
  c_row c_job%rowtype;
begin
  open c_job;
  loop
    --提取一行数据到c_row
    fetch c_job into c_row;
    
    --判读是否提取到值,没取到值就退出
    exit when c_job%notfound;
    dbms_output.put_line(c_row.empno || '-' || c_row.ename || '-' ||
                         c_row.job || '-' || c_row.sal);
  end loop;
  
  --关闭游标
  close c_job;
end;

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。