您好,欢迎来到纷纭教育。
搜索
您的当前位置:首页Oracle万能分页法的存储过程

Oracle万能分页法的存储过程

来源:纷纭教育


Oracle万能分页法的存储过程 --创建一个包,在包中定义一个 游标类型 create or replace package testfenyepackage as type test

Oracle万能分页法的存储过程

--创建一个包,在包中定义一个 游标类型
create or replace package testfenyepackage as
type test_cursor is ref cursor ;
end testfenyepackage;

--编写分页的过程
create or replace procedure fenyeTest
(
tableName varchar2,--表名
pageSize number,--每页显示的数目
pageNow number,--当前的页数
Outrows out number,--返回总记录数
pagecount out number,--总页数
p_cursor out testfenyepackage.test_cursor--返回的记录集
)
as
--定义部分
--第一一个sql语句的字符串
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;
--计算Outrows pagecount
--组织一个 sql语句
v_sql:='select count(*) from '||tableName;
--执行sql并把返回的结果赋值给Outrows
execute immediate v_sql into Outrows;
--计算页数
if mod(Outrows,pageSize)=0 then
pagecount:=Outrows/pageSize;
else
pagecount:=Outrows/pageSize+1;
end if;
end;

Java中用JDBC调用Oracle存储过程和函数

Oracle存储过程本地编译方式

Oracle 存储过程及REF CURSOR的使用

Oracle存储过程中提示“权限不足”的解决办法

Oracle利用存储过程返回结果集开发报表

Oracle存储过程中临时表的使用技巧

本文永久更新链接地址:

Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务