程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 調用Oracle 分頁存儲過程更為快捷的方案

調用Oracle 分頁存儲過程更為快捷的方案

編輯:Oracle數據庫基礎

我們都知道用ASP.Net來調用Oracle分頁存儲過程要結合ASPnetpager分頁控件,來實現分頁的自動功能,在2010-01-31 21:01之前我們用的都是GridVIEw自帶的分頁功能,那速度啊慢的真實不行 ,決定自定義分頁 Oracle庫裡有5W多條數據,ASPnetPager做的還是不錯,拿過來用。

Oracle 分頁存儲過程:

create or replace package JT_P_page is

type type_cur is ref cursor; 定義游標變量用於返回記錄集

procedure Pagination (Pindex in number, 要顯示的頁數索引,從0開始

Psql in varchar2, 產生分頁數據的查詢語句

Psize in number, 每頁顯示記錄數

Pcount out number, 返回的分頁數

Prowcount out number, 返回的記錄數

v_cur out type_cur 返回分頁數據的游標

);

end JT_P_page;

定義包主體

create or replace package body JT_P_page is

procedure Pagination(Pindex in number, 要顯示的頁數索引,從0開始

Psql in varchar2, 產生分頁數據的查詢語句

Psize in number, 每頁顯示記錄數

Pcount out number, 返回的分頁數

Prowcount out number, 返回的記錄數

v_cur out type_cur 返回分頁數據的游標

  1. ) AS  
  2. v_sql VARCHAR2(1000);  
  3. v_Pbegin number;  
  4. v_Pend number;  
  5. begin  
  6. v_sql :'select count(*) from (' || Psql || ')';  
  7. execute immediate v_sql into Prowcount;  

計算記錄總數

  1. Pcount :ceil(Prowcount / Psize);  

計算分頁總數,顯示任意頁內容

  1. v_Pend :Pindex * Psize + Psize;  
  2. v_Pbegin :v_Pend - Psize + 1;   
  3. v_sql :'select * from (' || Psql || ') where rn between ' || v_Pbegin || ' and ' || v_Pend;   
  4. open v_cur for v_sql;  
  5. end Pagination;   
  6. end JT_P_page; 

這個是在網上找的,還不錯 主要是根據偽列 rownum作為where查詢條件 進行帥選,,通過這次做這個Oracle分頁算是對rownum有了初步的認識,實踐出真理 , 有了Oracle分頁存儲過程截下來就是調用。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved