Oracle與C 儲存過程分頁

2022-07-15 17:51:10 字數 2153 閱讀 5235

--分頁

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...