Oracle分页函数(存储过程)

create or replace package body Get_RecordByPage is
StrSQL varchar2(2000);
--分页函数
procedure GetRecordByPage(tblName in varchar2,
FLDName in varchar2,
PageSize in number,
PageIndex in number,
strWhere in varchar2,
orderType in varchar2,
r_cur out myCur) is

pageMax number(10);
pageMin number(10);

begin
pageMin := (PageIndex - 1) * PageSize;
pageMax := PageIndex * PageSize;

StrSQL := 'select * from (select a.*,rownum recordRownum from';
StrSQL := StrSQL || '(select * from ' || tblName;
if (length(strWhere) > 0) then
begin
StrSQL := StrSQL || ' where ' || strWhere;
-- StrSQL := StrSQL || ' where :strwhere';
end;
end if;
StrSQL := StrSQL || ' order by ' || FLDName || ' ' || orderType;
StrSQL := StrSQL || ') a ) b';
StrSQL := StrSQL || ' where recordRownum<=' || pageMax ||' and recordRownum>' || pageMin;

open R_cur for StrSQL ;

end GetRecordByPage;
--计算总记录行数
procedure GetRecordCounts(tblName in varchar2,
strWhere in varchar2,
counts out number) is

begin

StrSQL := 'select count(*) from ' || tblName;
if (length(strWhere) > 0) then
begin
StrSQL := StrSQL || ' where ' || strWhere;
-- StrSQL := StrSQL || ' where :strwhere';
end;
end if;
execute immediate StrSQL
into counts ;
end GetRecordCounts;
end Get_RecordByPage;
Package bodies

 

转载于:https://www.cnblogs.com/gotoschool/p/4777679.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值