Oracle 中游标的使用

 
  1.  declare cursor my_cur is select empno,deptno from emp;  
  2. employee_id emp.empno%type;  
  3. dept_id emp.deptno%type;  
  4. begin  
  5.   open my_cur;  
  6.   fetch my_cur into employee_id,dept_id;  
  7.   while my_cur%found loop  
  8.         dbms_output.put_line(employee_id||' shit '||dept_id);  
  9.         fetch my_cur into employee_id,dept_id;  
  10.   end loop;  
  11. end;  

使用行变量来获取游标信息

 
  1. declare cursor mycur is select * from emp;  
  2. var_emp emp%rowtype;  
  3. begin  
  4.       open mycur;  
  5.       fetch mycur into var_emp;  
  6.       while mycur%found loop  
  7.         dbms_output.put_line(var_emp.ename||':'||+to_char(var_emp.hiredate,'yyyy-MM-dd'));  
  8.         fetch mycur into var_emp;  
  9.       end loop;  
  10. end;  

隐式游标

 
  1. declare var_count integer;  
  2. begin  
  3.    update A set ename='B';  
  4.    var_count:=sql%rowcount;  
  5.    dbms_output.put_line(to_char(var_count));  
  6. end;  

动态游标
定义
declare type emp_cur_type is ref cursor return emp%rowtype;

new_emp_cur_type emp_cur_type;

open new_emp_cur_type for select * from emp;

相关推荐