十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
我們都知道用ASP.NET來(lái)調(diào)用Oracle分頁(yè)存儲(chǔ)過(guò)程要結(jié)合ASPnetpager分頁(yè)控件,來(lái)實(shí)現(xiàn)分頁(yè)的自動(dòng)功能,在2010-01-31 21:01之前我們用的都是GridView自帶的分頁(yè)功能,那速度啊慢的真實(shí)不行 ,決定自定義分頁(yè) Oracle庫(kù)里有5W多條數(shù)據(jù),AspnetPager做的還是不錯(cuò),拿過(guò)來(lái)用。

Oracle 分頁(yè)存儲(chǔ)過(guò)程:
create or replace package JT_P_page is
type type_cur is ref cursor; 定義游標(biāo)變量用于返回記錄集
procedure Pagination (Pindex in number, 要顯示的頁(yè)數(shù)索引,從0開(kāi)始
Psql in varchar2, 產(chǎn)生分頁(yè)數(shù)據(jù)的查詢語(yǔ)句
Psize in number, 每頁(yè)顯示記錄數(shù)
Pcount out number, 返回的分頁(yè)數(shù)
Prowcount out number, 返回的記錄數(shù)
v_cur out type_cur 返回分頁(yè)數(shù)據(jù)的游標(biāo)
);
end JT_P_page;
定義包主體
create or replace package body JT_P_page is
procedure Pagination(Pindex in number, 要顯示的頁(yè)數(shù)索引,從0開(kāi)始
Psql in varchar2, 產(chǎn)生分頁(yè)數(shù)據(jù)的查詢語(yǔ)句
Psize in number, 每頁(yè)顯示記錄數(shù)
Pcount out number, 返回的分頁(yè)數(shù)
Prowcount out number, 返回的記錄數(shù)
v_cur out type_cur 返回分頁(yè)數(shù)據(jù)的游標(biāo)
- ) AS
- v_sql VARCHAR2(1000);
- v_Pbegin number;
- v_Pend number;
- begin
- v_sql := 'select count(*) from (' || Psql || ')';
- execute immediate v_sql into Prowcount;
計(jì)算記錄總數(shù)
- Pcount := ceil(Prowcount / Psize);
計(jì)算分頁(yè)總數(shù),顯示任意頁(yè)內(nèi)容
- v_Pend := Pindex * Psize + Psize;
- v_Pbegin := v_Pend - Psize + 1;
- v_sql := 'select * from (' || Psql || ') where rn between ' || v_Pbegin || ' and ' || v_Pend;
- open v_cur for v_sql;
- end Pagination;
- end JT_P_page;
這個(gè)是在網(wǎng)上找的,還不錯(cuò) 主要是根據(jù)偽列 rownum作為where查詢條件 進(jìn)行帥選,,通過(guò)這次做這個(gè)Oracle分頁(yè)算是對(duì)rownum有了初步的認(rèn)識(shí),實(shí)踐出真理 , 有了Oracle分頁(yè)存儲(chǔ)過(guò)程截下來(lái)就是調(diào)用。