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

树叶云

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

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 存储过程的描述。

【编辑推荐】

  1. Oracle存储过程中不存在返回值的缘由
  2. 实现Oracle存储过程的实际应用的代码
  3. Oracle存储过程中应注意的事项
  4. 深入高性能的Oracle动态SQL开发
  5. Oracle字段的转字符串实际操作方案
     

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/230672.html<

(0)
运维的头像运维
上一篇2025-04-19 08:26
下一篇 2025-04-19 08:27

相关推荐

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注