实现oracle分页的sql语句
表的名字是dx_userpageSize是一页多少条纪录pageCount是有多少页rowCount是一共多少纪录pageNow是当前页谢谢各位...
表的名字是dx_user pageSize是一页多少条纪录 pageCount是有多少页 rowCount是一共多少纪录 pageNow是当前页 谢谢各位
展开
2个回答
展开全部
下面是用ORACLE数据库pl/sql编程实现的一个方式:
-------------------创建一个包--------------------------
create or replace package pages_query_pak as
type pages_cursor is ref cursor; --定一个游标,保存数据查询得到的结果集
end pages_query_pak;
------------------创建一个过程----------------------
create or replace procedure pages_pro(
tableName in varchar2,
pageSize in number,--每一页显示的记录数
pageNow in number,--显示第几页
myRows out number,--总记录数
pageCount out number,--总页数
page_cursor out pages_query_pak.pages_cursor--返回的记录集 这里有用了上面那个包
) is
v_sql varchar2(1000);
v_begin number:=(pageNow-1)*pageSize+1;
v_end number:=pageNow*pageSize;
begin
v_sql:='select * from (select bt.*,rownum rnum from (select * from '|| tableName ||')bt
where rownum<='||v_end||') where rnum>='||v_begin;
open page_cursor for v_sql;
--计算myRows和pageCount
v_sql:='select count(*) from '||tableName;
execute immediate v_sql into myRows;
if mod(myRows,pageSize)=0 then
pageCount:=myRows/pageSize;
else
pageCount:=myRows/pageSize+1;
end if;
end;
-------------------创建一个包--------------------------
create or replace package pages_query_pak as
type pages_cursor is ref cursor; --定一个游标,保存数据查询得到的结果集
end pages_query_pak;
------------------创建一个过程----------------------
create or replace procedure pages_pro(
tableName in varchar2,
pageSize in number,--每一页显示的记录数
pageNow in number,--显示第几页
myRows out number,--总记录数
pageCount out number,--总页数
page_cursor out pages_query_pak.pages_cursor--返回的记录集 这里有用了上面那个包
) is
v_sql varchar2(1000);
v_begin number:=(pageNow-1)*pageSize+1;
v_end number:=pageNow*pageSize;
begin
v_sql:='select * from (select bt.*,rownum rnum from (select * from '|| tableName ||')bt
where rownum<='||v_end||') where rnum>='||v_begin;
open page_cursor for v_sql;
--计算myRows和pageCount
v_sql:='select count(*) from '||tableName;
execute immediate v_sql into myRows;
if mod(myRows,pageSize)=0 then
pageCount:=myRows/pageSize;
else
pageCount:=myRows/pageSize+1;
end if;
end;
展开全部
http://zhidao.baidu.com/question/212739485.html?oldq=1&from=evaluateTo#reply-box-592556619
这个是之前我很早回答的,很多人看着还有些帮助,希望也对你有所帮助~
这个是之前我很早回答的,很多人看着还有些帮助,希望也对你有所帮助~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |