Oracle分頁儲存過程

2022-02-04 00:18:26 字數 1389 閱讀 8306

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 --返回分頁資料的游標

) as

v_sql varchar2(1000);

v_pbegin number;

v_pend number;

begin

v_sql := 'select count(*) from (' || psql || ')';

execute immediate v_sql into prowcount; --計算記錄總數

pcount := ceil(prowcount / psize); --計算分頁總數

--顯示任意頁內容

v_pend := pindex * psize + psize;

v_pbegin := v_pend - psize + 1; 

--psql := 'select rownum as rn , t.* from pay_en_voucher t'; --要求必須包含rownum欄位   

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;

還算不錯

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