读书人

oracle存储过程分页处置

发布时间: 2013-03-26 21:09:07 作者: rapoo

oracle存储过程分页处理

知识点链接

1、oracle分页 2、游标使用

创建存储过程

--创建存储过程(startpoint 开始点、getnum 取出来数量)create or replace procedure copylimit(startpoint number,getnum number) as/*定义table*/type emp_tab is table of myemp%rowtype;emp_rd emp_tab;/*定义游标*/emp_cur sys_refcursor;--开启begin  --显示用户输入的开始点与要取出的数据量  dbms_output.put_line('开始点:'||startpoint||' 取出数量:'||getnum);  --打开游标并且给游标赋值(执行分页查询)  open emp_cur for select * from myemp where rowid in (                   select rd from(                   select rownum rm,rd from(                      select rowid rd from myemp order by empno) where rownum < startpoint + getnum) where rm >= startpoint);   --开启循环   loop       --从游标里面取值bulk collect方式赋给emp_rd     fetch emp_cur bulk collect into emp_rd limit 2;     --循环遍历     for i in 1..emp_rd.count loop       dbms_output.put_line('员工名:'||emp_rd(i).ename);     end loop;     exit when emp_cur%notfound;     --结速循环     end loop;    --关闭游标    close emp_cur;--结束end;


执行存储过程

SQL> exec copylimt(2,4); 开始点:2 取出数量:4员工名:ALLEN员工名:WARD员工名:JONES员工名:MARTIN PL/SQL procedure successfully completed Executed in 0 seconds 



我的异常网推荐解决方案:oracle存储过程,http://www.myexception.cn/oracle-develop/177537.html

读书人网 >其他数据库

热点推荐