欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 oracle存储过程分页代码是怎么实现的,我们来看下中国IT实验小编为您整理的方法吧! /*******存储过程分页代码**********/ --包头 create or replace package pck_my is type c_my is ref cursor; pr
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入
oracle存储过程分页代码是怎么实现的,我们来看下中国IT实验小编为您整理的方法吧!
/*******存储过程分页代码**********/
--包头
create or replace package pck_my is
type c_my is ref cursor;
procedure page_moed(
v_table in varchar2, --表名
current_page in out number,--当前页
pageSize in out number,--页行数
total out number,--总行数
countPage out number,--总页数
c_cursor out pck_my.c_my--游标
);
end pck_my;
--body
create or replace package body pck_my as
procedure page_moed(
v_table in varchar2,
current_page in out number,
pageSize in out number,
total out number,
countPage out number,
c_cursor out pck_my.c_my
)is
v_sql varchar2(1000);
v_max number;
v_min number;
e_table exception;
begin
--判断参数
if v_table is null then
raise e_table;
--return;
end if;
if current_page is null then
current_page:=1;
end if;
if pageSize
pageSize:=5;
end if;
--计算 最大行 最小行
v_max:=(current_page+1)*pageSize;
v_min:=current_page*pageSize;
--获取数据
v_sql:= 'select *
from (select filminfo.*, rownum as t from '|| v_table ||' where rownum
where t > ' ||v_min;
open c_cursor for v_sql;
--计算总行数
v_sql:='select count(*) from '|| v_table;
execute immediate v_sql into total;
--计算总页数
if mod(total,pageSize)=0 then
countPage:=total/pageSize;
else
countPage:=total/pageSize+1;
end if;
--exception
exception
when e_table then
dbms_output.put_line('表名不能为空');
end;
end pck_my;
-- exet
select * from filminfo
[1] [2]
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号