create or replace procedure contfenyePro(

v_in_tablename in varchar2,

v_in_pagesize in number,

v_in_pagenow in number,

v_in_order in varchar2,

v_out_rows out number,

v_out_counts out number,

v_out_result out pack1.my_cursor ) is

--定义变量

v_sql varchar2(2000);

v_start number;

v_end number;

begin

--execute

v_start:=v_in_pagesize*(v_in_pagenow-1)+1;

v_end:=v_in_pagesize*v_in_pagenow;

v_sql:='select t2.* from (select t1.*,rownum rn from (select * from '||v_in_tablename||' order by '||v_in_Order||') t1 where rownum<='||v_end||') t2 where rn>='||v_start;

open v_out_result for v_sql;

--计算v_out_rows和v_out_counts

--组织一个sql 语句

v_sql:='select count(*) from '||v_in_tablename;

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

execute immediate v_sql into v_out_rows;

--计算myPageCount

if mod(v_out_rows,v_in_pagesize)=0 then

v_out_counts:=v_out_rows/v_in_pagesize;

else

v_out_counts:=v_out_rows/v_in_pagesize+1;

end if;

end;

package com.cc.utils;

import java.sql.*;

public class TestProcedure3 {

public TestProcedure3() {

}

public static void main(String[] args ){

String driver = "oracle.jdbc.driver.OracleDriver";

String strUrl = "jdbc:oracle:thin:@172.16.0.136:1521:ccz";

Statement stmt = null;

ResultSet rs = null;

Connection conn = null;

CallableStatement ps = null;

try {

Class.forName(driver);

conn =  DriverManager.getConnection(strUrl, "scott", "tiger");

ps = conn.prepareCall("{ call contfenyePro(?,?,?,?,?,?,?) }");

ps.setString(1, "emp");

ps.setInt(2,3);

ps.setInt(3, 3);

ps.setString(4,"sal desc");

ps.registerOutParameter(5, oracle.jdbc.OracleTypes.INTEGER);

ps.registerOutParameter(6, oracle.jdbc.OracleTypes.INTEGER);

ps.registerOutParameter(7, oracle.jdbc.OracleTypes.CURSOR);

ps.execute();

rs =  (ResultSet) ps.getObject(7);

while(rs.next()){

System.out.println("用户名是:"+rs.getString("ename")+"薪水是:"+rs.getString("sal"));

}

//取出记数

int rowCount=ps.getInt(5);

int pageCount=ps.getInt(6);

System.out.println("总记录:"+rowCount);

System.out.println("总页数:"+pageCount);

}

catch (Exception ex2) {

ex2.printStackTrace();

}

finally{

try {

if(rs != null){

rs.close();

if(stmt!=null){

stmt.close();

}

if(conn!=null){

conn.close();

}

}

}

catch (Exception ex1) {

ex1.printStackTrace();

}

}

}

}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26495863/viewspace-1324011/,如需转载,请注明出处,否则将追究法律责任。

java oracle分页_oracle 分页存储过程和java代码相关推荐

  1. oracle存储过程生成单号,Oracle生成单据编号存储过程的实例代码

    Oracle生成单据编号存储过程,在做订单类似的系统都可能会存在订单编号不重复,或是流水号按日,按年,按月进行重新编号. 可以参考以下存储过程 CREATE OR REPLACE procedure ...

  2. oracle存储过程插入自动编号,Oracle生成单据编号存储过程的实例代码

    Oracle生成单据编号存储过程,在做订单类似的系统都可能会存在订单编号不重复,或是流水号按日,按年,按月进行重新编号. 可以参考以下存储过程 0 then if DIsAutoCreate=1 TH ...

  3. oracle的pl/sql存储过程调用java soure来判断文件夹下某个文件是否存在

    oracle版本是9i 首先创建java soure create or replace and compile java source named existsfile as import java ...

  4. java实现报表_用存储过程和 JAVA 写报表数据源有什么弊端?

    用存储过程和 JAVA 写报表数据源有什么弊端?跟着小编一起来一看一下吧! 我们在报表开发中经常会使用存储过程准备数据,存储过程支持分步计算,可以实现非常复杂的计算逻辑,为报表开发带来便利.所以,报表 ...

  5. java oracle数据库高效分页查询_oracle高效分页查询总结

    探索查询语句: --分页参数:size = 20 page = 2 --没有order by的查询 -- 嵌套子查询,两次筛选(推荐使用) --SELECT * -- FROM (SELECT ROW ...

  6. java oracle数据库高效分页查询_Oracle学习之分页查询数据

    Oracle的分页是不同于MySQL的,今天我们来讨论一下Oracle的分页,首先得知道两个概念 rowid和rownum 什么鬼?有鸟用啊? 我们从字面的英文翻译可以知道rowid是 "行 ...

  7. java web oracle 分页_Oracle分页的两种方式

    第一种: select b.* from (select rownum as rid, a.* from om_cm_book_hotword a) b where b.rid <= 10 an ...

  8. java oracle 流水号_Oracle生成流水号函数

    一.参考 1:日期范围上 smalldatetime的有效时间范围1900/1/1~2079/6/6 datetime的有效时间范围1753/1/1~9999/12/31 2:精准度上 smallda ...

  9. oracle 字典_Oracle只读用户通过JAVA应用程序导出其它用户数据最小权限

    测试目的:通过只读用户导出其它用户数据的最小权限要求. 测试场景:通过只读用户B,导出A用户全部数据,再将数据导入到读写用户C 测试结论:通过只读用户导出其它用户数据的最小权限清单: create s ...

最新文章

  1. 工具栏对象GUI Status 与GUI Title
  2. mysql复制架构迁移到pxc_mysql复制(高可用架构方案的基础)
  3. 引入JQuery提示:Uncaught ReferenceError: $ is not defined
  4. Acess link
  5. 近似乘积(jzoj 3925)
  6. HDU 3605Escape(缩点+网络流之最大流)
  7. 是什么决定了我们以何种方式赚钱?
  8. SpringBoot集成MyBatis-Plus框架
  9. 日赚4.5亿!腾讯游戏业务增长惊人:最赚钱的还是它两!
  10. [转]麻省理工学院(MIT)研究生学习指导[上]
  11. java url解码_如何从REST WebService 调用中解码路径参数
  12. 拒绝版权流氓!阿里巴巴重磅发布免费商用字体
  13. [对于蓝桥杯要说的一二体会]
  14. WIN7内部版本7600.此WINDOWS副本不是正版---解决方法
  15. 国家网信办《网络数据安全管理条例(征求意见稿)》为企业带来哪些新思考?
  16. 使用JavaScript使浏览器进入全屏或退出全屏
  17. 经典分割线 html分割线
  18. FFmpeg音频解码-音频可视化
  19. 实践应用|PyQt5制作雪球网股票数据爬虫工具
  20. java语言实现修改文件名称的功能

热门文章

  1. 无法打开锁文件 /var/lib/dpkg/lock - open (13: 权限不够) 无法对状态列表目录加锁(/var/lib/dpkg/),请查看您是否正以 root 用户运行?
  2. android 固定底部,如何将view固定在屏幕底部?
  3. 深度学习:知识回收(Lecture3+4 PLA+Decision Tree)
  4. 视频目标检测--Flow-Guided Feature Aggregation for Video Object Detection
  5. 解决AttributeError: module ‘tensorflow_core._api.v2.config‘ has no attribute ‘experimental_list_device
  6. 一个好用的C++的json库
  7. portlet java_探秘企业门户开发:Java Portlet入门(2)
  8. benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明
  9. java批量下载文件为zip包
  10. SpringBoot监听redis订阅监听和发布订阅