职场大变样社区

5598

主题

6638

帖子

79

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
79
跳转到指定楼层
楼主
发表于 2017-2-27 09:30:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
技术: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;

百度网盘下载地址(金币充值):
游客,如果您要查看本帖隐藏内容请回复



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

职场大变样社区 分享高质量学习资料(电子课本、毕业设计、编程视频、项目源码、电子书籍等)

快速回复 返回顶部 返回列表