oracel的游标用法

--游标中的while循环---
declare
  cursor mycursor is
    select * from sys_bank;
  myrecord sys_bank%rowtype;
begin
  --打开游标--
  open mycursor;
  --捕捉游标--
  fetch mycursor
    into myrecord;
    --循环之前一定要fetch一把
  while mycursor%found loop
    dbms_output.put_line(myrecord.bank_id || ' ' || myrecord.bank_name || ' ' ||
                         myrecord.flag);
    fetch mycursor
      into myrecord;
  end loop;
  --关闭游标
  close mycursor;
end;

--带参数的游标,exit..when循环--
declare
  cursor mycursor(v_bank_id varchar2) is
    select * from sys_bank where bank_id = v_bank_id;
  myrecord sys_bank%rowtype;
begin
  open mycursor('3');
  loop
    fetch mycursor
      into myrecord;
    exit when mycursor%notfound;
    dbms_output.put_line(myrecord.bank_id || ' ' || myrecord.bank_name || ' ' ||
                         myrecord.flag);
  end loop;
  close mycursor;
end;

--用for循环游标 不需要手动打开游标也不需要手动关闭--
declare
  cursor mycursor(v_bank_id varchar2) is
    select * from sys_bank where bank_id = v_bank_id;
begin
  for cur in mycursor('3')
  loop
      dbms_output.put_line(cur.bank_id || ' ' || cur.bank_name || ' ' ||
                         cur.flag);
  end loop;
end;

原文地址:https://www.cnblogs.com/working/p/2918954.html