知识大全 oracle存储过程分页代码
Posted 知
篇首语:天才就是百分之九十九的汗水加百分之一的灵感。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 oracle存储过程分页代码相关的知识,希望对你有一定的参考价值。
oracle存储过程分页代码是怎么实现的 我们来看下实验小编为您整理的方法吧!
/*******存储过程分页代码**********/
包头
create or replace package pck_my is
type c_my is ref cursor;
procedure page_moed(
v_table in varchar 表名
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;
body
create or replace package body pck_my as
procedure page_moed(
v_table in varchar
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 varchar ( );
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 then
current_page:= ;
end if;
if pageSize<= then
pageSize:= ;
end if;
计算 最大行 最小行
v_max:=(current_page+ )*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)= then
countPage:=total/pageSize;
else
countPage:=total/pageSize+ ;
end if;
exception
exception
when e_table then
dbms_output put_line( 表名不能为空 );
end;
end pck_my;
exet
select * from filminfo
java测试代码
[]
package 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: :ABC tenement rui );
String sql= call pck_my page_moed(? ? ? ? ? ?) ;
cs=con prepareCall(sql);
//指定类型
/* v_table in varchar
current_page in out number
pageSize in out number
total out number
countPage out number
c_cursor out pck_my c_my
*/
//cs setString( null);
cs setString( filminfo );
cs setInt( );
cs setInt( );
cs registerOutParameter( oracle jdbc OracleTypes NUMBER);
cs registerOutParameter( oracle jdbc OracleTypes NUMBER);
cs registerOutParameter( oracle jdbc OracleTypes CURSOR);
cs execute();
int total=cs getInt( );//总行数
int countPage=cs getInt( );//总页数
rs=(ResultSet)cs getObject( );//result
System 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 block
e printStackTrace();
catch (SQLException e)
// TODO Auto generated catch block
e printStackTrace();
cha138/Article/program/Oracle/201311/17872
相关参考
在看了众多的分页存储过程以后发现都是针对sqlserver的而没有oracle的因此想写一个关于oracle的存储过程因为我用到的数据库是oracleoracle分页存储过程的思路于sqlserv
createorreplacepackagemypack as typecursortestCursorisrefcursor; endmypack; tableName表名pageSiz
前台设计复制代码代码如下:<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="pagingaspxcs"Inherits="五二一练习
MSsql数据库如何实现分页存储的代码实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishi
用存储过程创建数据表:创建时注意必须添加authidcurrent_user如果创建的表已存在存储过程继续执行但如不不加此关键语句存储过程将出现异常这个语句相当于赋权限例创建语句如下 复制代码代
分页SQLServer存储过程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! /*用存储过程实现
“俄罗斯存储过程”的改良版 CREATEprocedurepagination(@pagesizeint页面大小如每页存储条记录@pageindexint当前页码)assetnocountonb
高效SQL分页存储过程(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Book类负责查询数
CREATEPROCmyx_prPageRecordset @queryStrnvarchar() @keyFieldnvarc
SQL大数据量分页存储过程效率测试 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! /*存储过程分