ORACLE分页存储过程
2009-04-02 23:31
225 查看
create or replace package Tools
is
type ResultData is ref cursor;
procedure sp_Page(p_PageSize int, --每页记录数
p_PageNo int, --当前页码,从 1 开始
p_OutRecordCount out int,--返回总记录数
p_OutCursor out ResultData);
end Tools;
create or replace package body Tools
is
procedure sp_Page(p_PageSize int, --每页记录数
p_PageNo int, --当前页码,从 1 开始
p_OutRecordCount out int,--返回总记录数
p_OutCursor out ResultData)
as
v_sql varchar2(3000);
v_count varchar2(3000);
v_SqlSelect varchar2(3000);
v_prcount number;
v_heiRownum int;
v_lowRownum int;
begin
----取记录总数
v_count:='select count(*)from grade';
execute immediate v_count into v_prcount;
p_OutRecordCount := v_prcount;
----执行分页查询
v_heiRownum := p_PageNo * p_PageSize;
v_lowRownum := v_heiRownum - p_PageSize +1;
v_SqlSelect := 'select * from grade';
v_sql := 'SELECT *
FROM (
SELECT A.*, rownum rn
FROM ('|| v_SqlSelect ||') A
WHERE rownum <= '|| to_char(v_heiRownum) || '
) B
WHERE rn >= ' || to_char(v_lowRownum) ;
--注意对rownum别名的使用,第一次直接用rownum,第二次一定要用别名rn
OPEN p_OutCursor FOR v_SQL;
end sp_Page;
end Tools;
is
type ResultData is ref cursor;
procedure sp_Page(p_PageSize int, --每页记录数
p_PageNo int, --当前页码,从 1 开始
p_OutRecordCount out int,--返回总记录数
p_OutCursor out ResultData);
end Tools;
create or replace package body Tools
is
procedure sp_Page(p_PageSize int, --每页记录数
p_PageNo int, --当前页码,从 1 开始
p_OutRecordCount out int,--返回总记录数
p_OutCursor out ResultData)
as
v_sql varchar2(3000);
v_count varchar2(3000);
v_SqlSelect varchar2(3000);
v_prcount number;
v_heiRownum int;
v_lowRownum int;
begin
----取记录总数
v_count:='select count(*)from grade';
execute immediate v_count into v_prcount;
p_OutRecordCount := v_prcount;
----执行分页查询
v_heiRownum := p_PageNo * p_PageSize;
v_lowRownum := v_heiRownum - p_PageSize +1;
v_SqlSelect := 'select * from grade';
v_sql := 'SELECT *
FROM (
SELECT A.*, rownum rn
FROM ('|| v_SqlSelect ||') A
WHERE rownum <= '|| to_char(v_heiRownum) || '
) B
WHERE rn >= ' || to_char(v_lowRownum) ;
--注意对rownum别名的使用,第一次直接用rownum,第二次一定要用别名rn
OPEN p_OutCursor FOR v_SQL;
end sp_Page;
end Tools;
相关文章推荐
- oracle 分页存储过程
- oracle高效分页存储过程(百万数据级)
- ORACLE高效分页存储过程代码
- Oracle与C#存储过程分页
- oracle存储过程分页代码
- 一个简单的oracle分页存储过程的实现和调用
- java调用Oracle分页存储过程
- Oracle问题小记五:服务启动-索引-子查询-分页存储过程
- Oracle大数据量分页通用存储过程
- Oracle分页存储过程以及C#调用
- oracle 分页存储过程
- oracle高效分页存储过程(百万数据级)
- oracle海量数据分页存储过程
- oracle 中通用的分页存储过程
- Oracle分页存储过程(转)
- oracle高效分页存储过程(百万数据级)
- ORACLE 自定义分页存储过程
- ORACLE高效分页存储过程代码
- 听韩老师的oracle的分页存储过程
- oracle实现存储过程分页查询(非包)