oracle存储过程分页与返回多结果集
plsql代码:
SQL> create or replace package testpackage as --创建包用来放游标
2 type test_cursor is ref cursor; --定义的游标test_cursor,ref curosr用法还不是很熟
3 end testpackage;
4 /
Package created
SQL> create or replace procedure fenye(
2 v_tablename in varchar2, --输入的表名,根据不同的表来分页
3 v_pagenow in number, --分页时当前页码
4 v_pagesize in number, --每页的页数
5 v_mypagecount out number, --计算出一共多少页
6 v_myrows out number, --计算表中一共多少行
7 p_cursor out testpackage.test_cursor --要输出的游标
8 )
9 is
10 v_sql varchar2(1000);
11 v_begin number:=(v_pagenow-1)*v_pagesize+1; --计算初始页,既从哪页开始
12 v_end number:=v_pagenow*v_pagesize; --计算结束页,既从哪页结束
13 begin --
14 v_sql:='select *
15 from (select b.*,
16 rownum as rn
17 from (select *
18 from '||v_tablename||'
19 &