Oracle存储过程中分页,用java代码来完成

Oracle存储过程,中涉及到分页时,我建议你用java代码来调用Oracle存储过程,如果你是Oracle的热捧者。那么下面的文章对于你而言一定很有意义。以下的文章就是对相关内容的描述。

成都创新互联长期为近1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为左权企业提供专业的成都做网站、网站制作、成都外贸网站建设左权网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

create table emp(

 
 
 
  1. id int,
  2. ename varchar2(30),
  3. sale number(7,2) 

共7位最大就是这样的数据
)

开发一个包-

 
 
 
  1. create or replace package testpackage as
  2. type test_cursor is ref cursor;
  3. end testpackage;

开始写分页的过程

 
 
 
  1. create or replace procedure fenye
  2. (tableName in varchar2,
  3. pagesizes in number,

一页显示记录

 
 
 
  1. pageNow in number,
  2. myrows out number,

总记录数

 
 
 
  1. myPageCount out number,

总页数

 
 
 
  1. p_cursor out testpackage.test_cursor

返回的记录集
)is

定义变量

定义sql语句 字符串-

 
 
 
  1. v_sql varchar2(1000);

定义sql长度

定义两个整数

 
 
 
  1. v_begin number:=(pageNow-1)*pagesizes+1;
  2. v_end number:=pageNow*pagesizes;

开始执行-

 
 
 
  1. v_sql:='select * from 
  2. (select t1.*,rownum rn from ( select * from '||tableName||' order by sale) t1 where rownum<='||v_end||')
  3. where rn>='||v_begin;

把游标和sql关联

 
 
 
  1. open p_cursor for v_sql;

计算myrows和mypageCount,组织了一个sql 语句

 
 
 
  1. v_sql:='select count(*) from '||tableName;

执行sql,并把返回的值,赋给 myrows

 
 
 
  1. execute immediate v_sql into myrows;

执行字符串的sql语句 必须格式,计算mypageCount

 
 
 
  1. if mod(myrows,pagesizes)=0 then
  2. myPageCount:=myrows/pagesizes;
  3. else
  4. myPageCount:=myrows/pagesizes+1;
  5. end if;

关闭游标

 
 
 
  1. close p_cursor;-

必须关闭游标,不是不能释放占有的空间,这很重要

 
 
 
  1. end;

以上文章就是使用java代码 调用Oracle 存储过程的描述。


网站名称:Oracle存储过程中分页,用java代码来完成
本文来源:http://gydahua.com/article/cosoeei.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流