--分頁
select * from(select t1.ename ,rownum rn from (select * from emp) t1 where rownum<=10) where rn>=6;
--開發乙個包
create or replace package tespackage as
type test_cursor is ref cursor;
end tespackage;
--分頁儲存過程
create or replace procedure sp_fengye
(tablename in varchar2,--引數1 表名字
pagesize in number,
pagenow in number,
myrows out number,--總記錄數
mypagecount out number,--總頁數
p_cursor out tespackage.test_cursor --返回記錄集
)is--定義部分
--定義sql語句 字串
v_sql varchar2(1000);
--定義兩個整數
v_begin number:=(pagenow-1)*pagesize+1; --從**開始取
v_end number:=pagenow*pagesize;
begin
--執行部分
v_sql:='select * from(select t1.ename ,rownum rn from
(select * from '||tablename||' order by sal) t1 where rownum<='||v_end||') where rn>='||v_begin;
--把游標和sql語句關聯起來
open p_cursor for v_sql;
--計算myrows和mypagecount的值
--組織乙個sql
v_sql:='select count(*) from'||tablename;
--執行sql,並把返回值賦給myrows;
execute immediate v_sql into myrows;
--計算mypagwecount
if mod(myrows,pagesize)=0 then
mypagecount:=myrows/pagesize;
else
mypagecount:=myrows/pagesize+1;
end if;
--關閉游標
close p_cursor;
end;
直接呼叫oracle中的儲存過程完成對錶的分頁,對**封閉程度高,執行高效.以下為c#分頁類**,包括oracle資料庫端儲存過程plsql**.
#endregion
#endregion
using system;
using system.collections.generic;
using system.web;
using system.data.oracleclient;
using system.data;
///
///呼叫oracle儲存過程對錶進行分頁
///
public class pagination
///
/// 執行分頁
///
/// 需分頁表名
/// 每頁記錄數
/// 當前頁碼
/// 引用引數,總記錄數
/// 引用引數,總頁數
/// 分頁結果集
public datatable paging(string tablename, int paesize, int indexnowpage, ref int totalrows, ref int totalpages)
catch(exception ex)
///
/// 關閉連線
///
private void closeoracleconnection()
}///
/// 開啟連線
///
private void openoracleconnection()
}
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...