废话不说了,直接上代码!
create or replace package pkg_test
is
type mytype is ref cursor;
end;
/
2.创建过程,带一个输出参数,
输出参数的类型是定义的引用游标类型
create or replace procedure proc_page
(mycur out pkg_test.mytype)
as
begin
open mycur for 'select * from users';
end;
3.通过java代码调用
--分页的存储过程
create or replace procedure proc_page
(
tablename varchar2,--表名
record number,--一页多少条记录
page number,--当前页数
totalpages out number,--总页数
mycur out pkg_test.mytype--放回的结果集
)
as
v_sql varchar2(1000);
begin
--总页数
v_sql:='select to_number(count(*)) from '|| tablename;
execute immediate v_sql into totalpages;
totalpages:=ceil(totalpages/record);
--拼接sql语句
v_sql:='select * from (select t.*,rownum rn from(select * from '|| tablename||
') t where rownum< '||page*record ||
')where rn>='||(page-1)*record;
open mycur for v_sql;
end;
具体的调用在java代码里面实现 这里为大家分享的是在oracle里面写的一个分页的存储过程!