oracle存储过程分页代码
来源:互联网 发布:apache ab url带参数 编辑:程序博客网 时间:2024/05/29 14:56
oracle存储过程分页代码
/*******存储过程分页代码**********/--包头create or replace package pck_my istype c_my is ref cursor;procedure page_moed( v_table in varchar2, --表名 current_page in out number,--当前页 pageSize in out number,--页行数 total out number,--总行数 countPage out number,--总页数 c_cursor out pck_my.c_my--游标 );end pck_my;--bodycreate or replace package body pck_my asprocedure page_moed( v_table in varchar2, current_page in out number, pageSize in out number, total out number, countPage out number, c_cursor out pck_my.c_my )is v_sql varchar2(1000);v_max number;v_min number;e_table exception;begin --判断参数if v_table is null then raise e_table; --return; end if;if current_page is null thencurrent_page:=1;end if;if pageSize<=0 thenpageSize:=5;end if; --计算 最大行 最小行v_max:=(current_page+1)*pageSize;v_min:=current_page*pageSize;--获取数据v_sql:= 'select * from (select filminfo.*, rownum as t from '|| v_table ||' where rownum <='|| v_max||') where t > ' ||v_min;open c_cursor for v_sql;--计算总行数v_sql:='select count(*) from '|| v_table;execute immediate v_sql into total;--计算总页数if mod(total,pageSize)=0 then countPage:=total/pageSize;else countPage:=total/pageSize+1;end if;--exceptionexception when e_table then dbms_output.put_line('表名不能为空');end;end pck_my;-- exetselect * from filminfo
java测试代码
package com.rui;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;public class Pckage {/** * @param args */public static void main(String[] args) {Connection con;ResultSet rs;CallableStatement cs;try {Class.forName("oracle.jdbc.driver.OracleDriver");con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ABC","tenement","rui");String sql="{call pck_my.page_moed(?,?,?,?,?,?)}";cs=con.prepareCall(sql);//指定类型/* v_table in varchar2, current_page in out number, pageSize in out number, total out number, countPage out number, c_cursor out pck_my.c_my*///cs.setString(1, null);cs.setString(1, "filminfo");cs.setInt(2, 3);cs.setInt(3,5);cs.registerOutParameter(4,oracle.jdbc.OracleTypes.NUMBER);cs.registerOutParameter(5, oracle.jdbc.OracleTypes.NUMBER);cs.registerOutParameter(6, oracle.jdbc.OracleTypes.CURSOR);cs.execute();int total=cs.getInt(4);//总行数int countPage=cs.getInt(5);//总页数rs=(ResultSet)cs.getObject(6);//resultSystem.out.println("总行数:"+total+"\t总页数"+countPage);System.out.println("------------------------------------");while(rs.next()){ System.out.println("FILMNAME:"+rs.getString("FILMNAME")+"\tFILMID:"+rs.getInt("FILMID"));}} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
- oracle 分页存储过程代码
- oracle存储过程分页代码
- ORACLE高效分页存储过程代码
- 转 ORACLE高效分页存储过程代码
- ORACLE高效分页存储过程代码
- ORACLE高效分页存储过程代码
- ORACLE高效分页存储过程代码
- ORACLE高效分页存储过程代码
- oracle存储过程分页
- oracle存储过程分页
- Oracle分页存储过程
- Oracle 存储过程分页
- ORACLE分页存储过程
- oracle 分页存储过程
- Oracle分页存储过程
- Oracle分页存储过程
- Oracle存储过程分页
- oracle 分页存储过程
- perf学习-linux自带性能分析工具
- sicily 1052. Candy Sharing Game
- 【Java】双等号和equals的区别
- C#中集合和对象初始化器的使用
- 自动化测试电子书大全[持续更新]
- oracle存储过程分页代码
- sicily 1085. Longge's problem
- 关于json的解析
- 7.3.4:两种注入方式的对比
- Xmanager远程桌面RHEL 6 配置
- 编译过程简介
- 内存操作函数
- oracle彻底删除以及遇到问题解决
- Installing a USB Driver