Orcale建立分頁儲存過程

2021-08-30 06:13:15 字數 2448 閱讀 5069

create or replace package mypage

as type page_cursor is ref cursor;

procedure get(page_col varchar2,  --要查詢的列

page_table varchar2, --表名(可有多張)

page_where varchar2,--條件

page_order varchar2, --排序

page_size number, --一頁顯示的條數

page_currpage number, --當前第幾條

page_count out number, --返回總條數

page_result out page_cursor); -- 返回結果集

end mypage;

/create or replace package body mypage

as procedure get(page_col varchar2,

page_table varchar2,

page_where varchar2,

page_order varchar2,

page_size number,

page_currpage number,

page_count out number,

page_result out page_cursor)

ist_sql varchar2(1000);

t_result varchar2(1000);

t_count number;

begin

if page_col is not null then

t_result := 'select '|| page_col || ' from ' || page_table ;

else

t_result := 'select * from ' || page_table ;

end if;

t_sql := 'select count(*) from ' || page_table || ' where 1=1 '|| page_where;

execute immediate t_sql into t_count;

page_count := t_count;

t_result := t_result ||' where rownum between '|| (page_currpage-1) * page_size|| ' and '|| page_currpage * page_size || page_where || page_order ;

open page_result for t_result;

end get;

end mypage;

/********************====呼叫處*************************====

建立連線物件 

class.forname("oracle.jdbc.driver.oracledriver").newinstance();

string url = "jdbc:oracle:thin:@localhost:1521:test"; //test為你的資料庫的sid

string user = "cowry";

string password = "cowry";

connection conn = drivermanager.getconnection(url, user, password);

呼叫callablestatement proc = conn.preparecall("");

proc.setstring(1, "*"); //要查詢的列

proc.setstring(2, "resume, recruitmessage"); //要查詢的表名

proc.setstring(3, where.tostring());                //where條件

proc.setstring(4, "order by resume.id desc");      //排序語句

proc.setint(5, 10);           // 每顯示多少條

proc.setint(6, currpage);          //當前第幾頁

proc.registeroutparameter(7, oracletypes.number);  // 總條數

proc.registeroutparameter(8, oracletypes.cursor);  // 查詢結果集

proc.execute();

int r = ((oraclecallablestatement) proc).getint(7); //顯示的總條數

resultset set = ((oraclecallablestatement) proc).getcursor(8);

while(set.next){

SQL Server 建立分頁儲存過程

sql server 建立分頁儲存過程 分頁儲存過程 建立 create proc usp pagescore page int,頁數 count int,條數 sumpage int output 總頁數as begin 獲取總頁數,ceiling表示向上取整 set sumpage ceilin...

分頁儲存過程 分頁儲存過程

分頁儲存過程 alter proc dbo p pageshow pagesize int,每頁大小 currentpage int out,當前頁 housename nvarchar 50 房產名稱 totalcount int out,總記錄數 totalpage int out 總頁數 as...

關於使用儲存過程建立分頁

今天查詢有關sql server 索引的資料 無意在一篇文章的末尾發現乙個關於使用儲存過程建立分頁的 直接複製到查詢分析器裡有誤,整理除錯了乙個,搬上來一起學習一下。注 原作者 freedk 以下為筆者整理 這是乙個相對最優的方法在大量資料集中表現突出 建立乙個 web 應用,分頁瀏覽功能必不可少。...