Oracle分页存储过程的调用在ibatis中

数据库 Oracle
我们今天要和大家分享的是Oracle分页存储过程在ibatis中如何正确的调用,下面就是文章的具体内容的讲述,望你会有所收获。

以下的文章主要介绍的是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 返回游标

 

  1. ) is  
  2. /**  
  3. * by chenjianxin 2008-5-3  
  4. *  
  5. */  
  6. v_PageSize number;  
  7. v_PageIndex number;  
  8. v_SQL_Count varchar2(4000);  
  9. v_SQL varchar2(4000);  
  10. v_StartIndex number;  
  11. v_EndIndex number;  
  12. begin  
  13. v_PageSize:=pageSize;  
  14. if v_PageSize=0 then  
  15. v_PageSize:=1;  
  16. end if;  

 

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

 

  1. v_SQL_Count :'select count(*) from (' ? ? sqlscript ? ?') a ';  
  2. execute immediate v_SQL_Count into totalCount;  

 

计算总页数

 

  1. totalPage:=CEIL(totalCount/v_PageSize); 

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

 

  1. v_PageIndex:=pageIndex;  
  2. if v_PageIndex>totalPage then  
  3. v_PageIndex:=totalPage;  
  4. end if;  

 

计算开始的Index和结束的Index

 

  1. v_StartIndex:=(v_PageIndex-1)*v_PageSize 1;  
  2. v_EndIndex:=v_PageIndex*v_PageSize;  
  3. v_SQL:='SELECT /* FIRST_ROWS */* FROM (';  
  4. v_SQLv_SQL:=v_SQL ? ?' SELECT A.*, ROWNUM RN ';  
  5. v_SQLv_SQL:=v_SQL ? ?' FROM (' ? ?sqlscript ? ?') A ';  
  6. v_SQLv_SQL:=v_SQL ? ?' WHERE ROWNUM <= ' ? ?v_EndIndex;  
  7. v_SQLv_SQL:=v_SQL ? ?')WHERE RN >= ' ? ?v_StartIndex;  
  8. open v_cur for v_SQL;  
  9. end P_QuerySplit;   

以上的相关内容就是对ibatis调用Oracle分页存储过程的介绍,望你能有所收获。

【编辑推荐】

  1. 安装Oracle 10g 在redhat linux 的正确方案
  2. Oracle 10G数据库中软硬件环境有哪些要求?
  3. Oracle数据库中的(+)连接如何操作?
  4. Oracle安全策略的实际用法
  5. Oracle存储过程中如何准确的实现分页
责任编辑:佚名 来源: 互联网
相关推荐

2010-04-30 08:47:22

Oracle分页存储

2010-04-16 11:31:29

Oracle分页存储过

2009-07-21 14:57:41

iBatis中调用存储iBatis

2010-10-26 14:50:11

oracle存储过程

2009-07-21 13:50:00

iBATIS.NET调

2011-05-17 15:13:59

oracle分页存储

2010-05-05 14:55:15

Oracle存储过程

2010-04-29 17:31:56

Oracle存储过程

2010-11-10 15:16:14

Sql Server分

2010-04-12 09:26:52

Oracle查询分页

2011-06-17 17:37:16

JavaSQL Server

2010-04-16 11:11:46

Oracle存储过程

2010-10-29 16:12:51

Oracle存储过程

2010-05-05 17:19:32

Oracle存储过程

2017-09-04 11:48:56

MybatisOracle存储过程

2011-08-16 16:59:58

PLSQL分页存储过程Java

2009-07-22 15:58:34

JDBC调用Oracl

2010-04-12 10:16:55

Oracle存储过程

2011-07-19 17:33:53

存储过程javaibatis

2010-04-23 13:29:01

Oracle存储过程
点赞
收藏

51CTO技术栈公众号