|
技术:Java、Oracle等
--java调用jdbcracle链接Oracle数据库存储过程实现分页 功能
--建立一个包
create or replace package testpackage as
type test_cursor is ref cursor;
end testpackage;
--建立一个分页的存储过程
create or replace procedure fenye
(tableName in varchar2,
Pagesize in number, --一页显示记录数
pageNow in number, --当前显示第几页
myrows out number, --总记录数
myPageCount out number, --总页数
p_cursor out testpackage.test_cursor --游标
) is
--定义部分
v_sql varchar2(1000);
v_begin number:= (pageNow-1)*Pagesize+1;
v_end number := pageNow * Pagesize;
begin
--执行部分
v_sql := 'select * from (select t1.*,rownum rn from (select * from '||tableName||') t1 where rownum<='||v_end||') where rn>='||v_begin;
--把游标和sql关联
open p_cursor for v_sql;
--计算机myrows和myPageCount
--组织一个sql
v_sql := 'select count(*) from '|| tableName;
--执行sql,把返回值赋值给myrows;
execute immediate v_sql into myrows;
--计算myPageCount
if mod(myrows,Pagesize) =0 then
myPageCount:= myrows /pageSize;
else
myPageCount:= myrows/pageSize+1;
end if;
--关闭游标
-- close p_cursor
end;
百度网盘下载地址(金币充值):
|
|