分页存储过程Oracle

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
select count(*) into totalrows from itemlist;
--取模计算:
my_mod:=mod(totalrows,everyPagerows);
--赋值操作:
select_rows:=currentPage*everyPagerows;
exit when my_cursor%notfound;
dbms_output.put_line('RN:'||store_cursor.rn||
',产品ID:'||store_cursor.item_id||
',产品名称:'||store_cursor.item_name||
type my_type is record
(
rn number(10),
item_id number,
item_name varchar2(10),
qty number(8),
ITEM_BATCH VARCHAR2(20),
UPDATE_DATE DATE
);
--定义一个记录类型的变量,用来存放游标提取的多行多列的值
store_cursor my_type;
--定义变量部分
select_rows number(10);--这个变量不用特意去研究什么意思,你可以把他们当成公式的变量
totalPage:=trunc(totalrows/everyPagerows)+1;
dbms_output.put_line
('当前是:第 '||to_char(currentPage)||'页,一共 '||to_char(totalPage)||' 页数据。');
('当前是:第 '||to_char(currentPage)||'页,一共 '||to_char(totalPage)||' 页数据。');
dbms_output.put_line('具体结果如下:');
--打开游标
open my_cursor;
return;
end if;
end;
update_date
from itemlist
where rownum<=select_rows) temptable where temptable.rn>pagecount;
begin
--计算总行数
RM VARCHAR2(10),
RM_QTY NUMBER(8),
RM_STATUS CHAR(1),
);
end loop;
close my_cursor;
return;
end if;
if my_mod<>0 then
--计算总页数:
pagecount number(10);--这个变量不用特意去研究什么意思,你可以把他们当成公式的变量
totalPage number(8);--这个表中的总页数
totalrows number;--这个表的总的数据行数
my_mod number(10);--取模计算
',RM状态:'||store_cursor.RM_STATUS||
',添加时间:'||store_cursor.UPDATE_DATE
);
end loop;
close my_cursor;
',产品RM:'||store_cursor.RM||
',产品RM数量:'||store_cursor.RM_QTY||
',RM状态:'||store_cursor.RM_STATUS||
',添加时间:'||store_cursor.UPDATE_DATE
',产品数量:'||store_cursor.qty||
',产品Batch:'||store_cursor.ITEM_BATCH||
',产品RM:'||store_cursor.RM||
',产品RM数量:'||store_cursor.RM_QTY||
--定义游标:
cursor my_cursor is
--进行分页查询的代码:
--下面是具体的查询操作:
select * from(
select rownum rn,item_id,item_name,qty,item_batch,rm,rm_qty,rm_status,
--提取游标:
loop
fetch my_cursor into store_cursor;
exit when my_cursor%notfound;
dbms_output.put_line('RN:'||store_cursor.rn||
dbms_output.put_line('具体结果如下:');
--打开游标
open my_cursor;
--提取游标:
loop
fetch my_cursor into store_cursor;
pagecount:=(currentPage-1)*everyPagerows;
if my_mod=0 then
--计算总页数:
totalPage:=totalrows/everyPagerows;
dbms_output.put_line
',产品ID:'||store_cursor.item_id||
',产品名称:'||store_cursor.item_name||
',产品数量:'||store_cursor.qty||
',产品Batch:'||store_cursor.ITEM_BATCH||
create or replace procedure FY_select_itemlist
(
currentPage number,--当前页,即要查询的是第几页
everyPagerows number --每页显示的数据行数
) as --因为查出来是一个多行多列的数据,所以必须用游标和记录类型
相关文档
最新文档