create or replace package jssb.pck_page is type T_Page is ref cursor; --定义游标变量用于返回记录集 procedure getpagerecord( pindex in number, --分页索引 psql in varchar2, --产生dataset的sql语句 psize in number, --页面大小 pcount out number, --返回分页总数 v_cur out T_Page --返回当前页数据记录 ); end pck_page; [sql] view plaincopy create or replace procedure jssb.p_app_GetCount( p_sql in varchar2, p_count out number ) as v_sql varchar2(1000); v_prcount number; begin v_sql := 'select count(*) from (' || p_sql || ')'; execute immediate v_sql into v_prcount; p_count := v_prcount; --返回记录总数 end p_app_GetCount; [sql] view plaincopy create or replace procedure jssb.p_app_page( p_pagesql in varchar2,--产生分页的sql语句 sql要求必须包含rownum字段且其别名为rn,如例子:select rownum rn,t.* from test t p_pagesize in number, --每页显示的条数 p_pageindex in number,--显示页的索引 从0开始 p_totalcount out number,--总条数 p_pagecount out number,--总页数 p_currentpagedata out pck_page.T_Page --返回当前页的数据 ) as begin pck_page.getpagerecord(p_pageindex,p_pagesql,p_pagesize,p_pagecount,p_currentpagedata); p_app_getcount(p_pagesql,p_totalcount); end; [sql] view plaincopy create or replace package body jssb.pck_page is procedure getpagerecord( pindex in number, psql in varchar2, psize in number, pcount out number, v_cur out T_Page ) as v_sql varchar2(1000); v_count number; v_plow number; v_phei number; begin v_sql := 'select count(*) from (' || psql || ')'; execute immediate v_sql into v_count; pcount := ceil(v_count/psize); v_phei := pindex * psize + psize; v_plow := v_phei - psize + 1; --psql := select rownum rn,t.* from test t ; --要求必须包含rownum字段 v_sql := 'select * from (' || psql || ') where rn between ' || v_plow || ' and ' || v_phei ; open v_cur for v_sql; end getpagerecord; end pck_page;
Oracle分页查询脚本
原创
©著作权归作者所有:来自51CTO博客作者guwei4037的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
MySQL百万级数据分页查询优化
MySQL优化
字段 分页查询 偏移量 -
oracle分页查询 .
分页查询数据库表结构及记录如下:1.根据rowid来分:16:
查询语句 分页 oracle -
Oracle、Mysql 分页查询
1.情景展示 在实际开发过程中,分页查询是最常使用的,只要存在表格查询,就会存在分页查询; 分页的好处在
WEB开发 分页 sql mysql -
[oracle]分页查询sql
自己去测试了下几种方法。。。还是用rownum比较好。
oracle 方法 效率 分页 sql -
Oracle之分页查询
Oracle之分页查询Oracle的分页查询语句基本上可以按照本文给
数据库 oracle 查询语句 分页