日期:2014-05-16  浏览次数:20456 次

oracle笔记七(游标变量)
游标变量:
游标变量是动态的,而游标是静态的。游标只能与指定的查询相连,即固定指向一个查询的内存处理区域,而游标变量则可与不同的查询语句相连,它可以指向不同查询语句的内存处理区域(但不能同时指向多个内存处理区域,在某一时刻只能与一个查询语句相连),只要这些查询语句的返回类型兼容即可)
declare
   type emp_job_record_type is record(
   v_empno emp.empno%type,
v_ename emp.ename%type,
v_job emp.job%type
   );
  
   type emp_ref_cur_type is ref cursor return emp_job_record_type;
-- 为游标变量的返回值类型,它必须为记录变量(强类型游标变量)
   emp_job_record emp_job_record_type;
   emp_ref_cur emp_ref_cur_type;
begin
open emp_ref_cur for select empno,ename,job from emp;
loop
  fetch emp_ref_cur into emp_job_record;
  exit when emp_ref_cur%notfound;
  dbms_output.put_line(emp_job_record.v_empno || ','||emp_job_record.v_ename ||','||emp_job_record.v_job);
  end loop;
close emp_ref_cur; 
end;