1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

以下的文章主要介绍的是Oracle分页存储过程在ibatis中如何正确调用的实际操作步骤,以及在其实际操作中有那些的事项是值得我们注意的,以下就是正文主要内容的描述,希望会给你带来一些帮助在此方面。

Oracle 分页:

create or replace procedure P_QuerySplit(

sqlscript varchar2, 表名/SQL语句

pageSize integer, 每页记录数

pageIndex integer, 当前页

totalCount out number, 总记录数

totalPage out number, 总页数

v_cur out sys_refcursor 返回游标

)is 
/** 
*bychenjianxin2008-5-3 
* 
*/ 
v_PageSizenumber; 
v_PageIndexnumber; 
v_SQL_Countvarchar2(4000); 
v_SQLvarchar2(4000); 
v_StartIndexnumber; 
v_EndIndexnumber; 
begin 
v_PageSize:=pageSize; 
ifv_PageSize=0then 
v_PageSize:=1; 
endif; 

ibatis调用Oracle分页存储过程中需要统计记录数量

v_SQL_Count:='selectcount(*)from('??sqlscript??')a'; 
executeimmediatev_SQL_CountintototalCount; 

计算总页数

totalPage:=CEIL(totalCount/v_PageSize);

验证页号 如果页号大余了***页数,返回***一页

v_PageIndex:=pageIndex; 
ifv_PageIndex>totalPagethen 
v_PageIndex:=totalPage; 
endif; 

计算开始的Index和结束的Index

v_StartIndex:=(v_PageIndex-1)*v_PageSize1; 
v_EndIndex:=v_PageIndex*v_PageSize; 
v_SQL:='SELECT/*FIRST_ROWS*/*FROM('; 
v_SQLv_SQL:=v_SQL??'SELECTA.*,ROWNUMRN'; 
v_SQLv_SQL:=v_SQL??'FROM('??sqlscript??')A'; 
v_SQLv_SQL:=v_SQL??'WHEREROWNUM<='??v_EndIndex; 
v_SQLv_SQL:=v_SQL??')WHERERN>='??v_StartIndex; 
openv_curforv_SQL; 
endP_QuerySplit; 

本文来源:1818IP

本文地址:https://www.1818ip.com/post/10953.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。