在oracle中使用分頁儲存過程相比較sql server來說,要複雜一些,資料集的返回需要使用游標。本人的分頁儲存過程是在oracle包中實現的。
--首先定義包頭部分
--pfilter引數為查詢條件字串,如「 ncid='1' and ndate='2012-1-1'」
create or replace package pkg_news is
type curbase is ref cursor;
procedure searchnews (pfilter in varchar2,ppage number,precordperpage out number,pallrecord out number,curnews out curbase);
end;
--然後定義包的主體部分
create or replace package body pkg_news is
--搜尋新聞,注意分頁部分還可以再優化一下。
procedure searchnews (pfilter in varchar2,ppage number,precordperpage out number,pallrecord out number,curnews out curbase) is
vsql varchar(1000);
begin
precordperpage:=30;
vsql:='select count(*) from v3news where (1=1) ' || pfilter;
execute immediate vsql into pallrecord;
vsql:='select rnum,nid,ncid,ncname,nfrom,nname,ndate,nclick from (select rownum rnum,v3news.* from v3news where (1=1) '|| pfilter || ') v3news where rnum>' ||
to_char((ppage-1)*precordperpage) || ' and rnum<=' || to_char(ppage*precordperpage);
open curnews for vsql ;
end;
end;
.net程式dao層
usingsystem;
using
system.collections.generic;
using
system.text;
using
system.data;
using
system.data.oracleclient;
namespace
newsdal
catch
(exception e)
finally}}
}
oracle分頁儲存過程
page slide procedure author robert.c time 2006.11.17 create or replace procedure tablepage select v page size int,the size of a page of list v current...
Oracle分頁儲存過程
第一步要先建立包 create or replace package pkg query is type cur query is ref cursor procedure met down query m tablename in varchar2,表名 m strwhere in varchar...
Oracle分頁儲存過程
第一步要先建立包 create or replace package pkg query is type cur query is ref cursor procedure met down query m tablename in varchar2,表名 m strwhere in varchar...