Oracle萬能分頁法的預存程序

來源:互聯網
上載者:User

Oracle萬能分頁法的預存程序

Oracle萬能分頁法的預存程序

--建立一個包,在包中定義一個 遊標類型
 create or replace package testfenyepackage as
 type test_cursor is ref cursor ;
 end testfenyepackage;

--編寫分頁的過程
 create or replace procedure fenyeTest
 (
 tableName varchar2,--表名
 pageSize number,--每頁顯示的數目
 pageNow number,--當前的頁數
 Outrows out number,--返回總記錄數
 pagecount out number,--總頁數
 p_cursor out testfenyepackage.test_cursor--返回的記錄集
 )
 as
 --定義部分
 --第一一個sql語句的字串
 v_sql varchar2(1000);
 --定義分頁的開始結束的整數變數
 v_begin number:=(pageNow-1)*pageSize+1;
 v_end  number:=pageNow*pageSize;
 begin
 --執行部分
 v_sql:='select * from (select t1.*, rownum rn from (select * from '||tableName||')t1
  where rownum<='||v_end||') where rn >='||v_begin;
 --把遊標和sql相關聯
 open p_cursor for v_sql;
 --計算Outrows  pagecount
 --組織一個 sql語句
 v_sql:='select count(*) from '||tableName;
 --執行sql並把返回的結果賦值給Outrows
 execute immediate v_sql into Outrows;
 --計算頁數
 if mod(Outrows,pageSize)=0 then
 pagecount:=Outrows/pageSize;
 else
 pagecount:=Outrows/pageSize+1;
 end if;
 end;

Java中用JDBC調用Oracle預存程序和函數

Oracle預存程序本地編譯方式

Oracle 預存程序及REF CURSOR的使用

Oracle預存程序中提示“許可權不足”的解決辦法

Oracle利用預存程序返回結果集開發報表

Oracle預存程序中暫存資料表的提示

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.