create or replace package mypack
as
type cursor testCursor is ref cursor;
end mypack;
--tableName表名, pageSize每页显示的数量,pageNow第几页,rows总页数,pageCount总页数,p_cursor游标
create or replace procedure fenye
(tableName in varchar2, pageSize in number, pageNow in number, rows out number, pageCount out number, p_cursor out mypack.testCursor)
is
declare
--定义sql语句
v_sql varchar2(1000);
--定义2个整数记录上一页
v_begin number := (pageNow - 1) * pageSize + 1;
v_end number := pageNow * pageSize;
begin
v_sql := 'select * from (select t.*, rownum r from (select * from '|| tableName ||') t where rownum<='|| v_end ||') where r>='|| v_begin ;
--将游标和sql语句关联起来
open p_cursor for v_sql;
--计算rows和pageCount;
v_sql := 'select count(*) from' || tableName;
--执行sql语句,并将返回的值付给 rows;
execute immediate v_sql into rows;
pageCount := (rows + pageSize - 1) / pageSize; --总页数;
close p_cursor;
end;
关键词标签:oracle,分页存储过程
相关阅读
热门文章 Oracle中使用alter table来增加,删除,修改列oracle中使用SQL语句修改字段类型-oracle修使用低权限Oracle数据库账户得到管理员权限Oracle对user的访问控制
人气排行 ORACLE SQL 判断字符串是否为数字的语句Oracle中使用alter table来增加,删除,修改列的语法ORACLE和SQL语法区别归纳(1)oracle grant 授权语句如何加速Oracle大批量数据处理Oracle删除表的几种方法ORACLE修改IP地址后如何能够使用Oracle 10g创建表空间和用户并指定权限
查看所有0条评论>>