首页 > 数据库 > Oracle > oracle--pl/sql 分页
pl/sql
分页:
--创建包
create or replace package
type test_cursor is ref cursor;
end testpackage;
--分页查询
create or replace procedure fenye (
tableName in varchar2,--输入的表名
mypagesize in number,--每页面显示的条数
pageNow in number,--当前的页数
myTotalRows out number,--总记录数
myPageCount out number,--总页面数
p_cursor out testpackage.test_cursor--返回的记录集合
)is
--定义部分
--定义sql语句字符串
v_sql varchar2(1000);
--定义二个整数
v_begin number:=(pageNow-1)*mypagesize+1;
v_end number:=pageNow*mypagesize;
begin
--执行
v_sql:='select * from (select t1.*,rownum rn from(select * from
'||tableName
||')t1 where rownum<='||v_end||') where
rn>='||v_begin;
--把游标与sql关联
open p_cursor for v_sql;
--计算myTotalRows与myPageCount
--sql
v_sql:='select count(*) from '||tableName;
--执行sql,并把返回值给myTotalRows
execute immediate v_sql into myTotalRows;
--
if mod(myTotalRows,mypagesize)=0 then
myPageCount:=myTotalRows/mypagesize;
else
myPageCount:=myTotalRows/mypagesize+1;
end if;
--关闭游标
--close p_cursor;
end;
java调用:
package com.eriching.app;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.*;
public class TestOraclePro {
public static void main(String[] args) {
"SCOTT","tiger");
}
}
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11240634/viewspace-1115795/ ,如需转载,请注明出处,否则将追究法律责任。