<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Knight of the round table

    wansong

    oracle pagination stored procedure.

    http://zzx0421.javaeye.com/blog/281015

    Oracle 分頁:

    create or replace procedure P_QuerySplit(

    sqlscript varchar2, 表名/SQL語句

    pageSize integer, 每頁記錄數(shù)

    pageIndex integer, 當(dāng)前頁

    totalCount out number, 總記錄數(shù)

    totalPage out number, 總頁數(shù)

    v_cur out sys_refcursor 返回游標

     

    1. ) is  
    2. /**  
    3. * by chenjianxin 2008-5-3  
    4. *  
    5. */  
    6. v_PageSize number;  
    7. v_PageIndex number;  
    8. v_SQL_Count varchar2(4000);  
    9. v_SQL varchar2(4000);  
    10. v_StartIndex number;  
    11. v_EndIndex number;  
    12. begin  
    13. v_PageSize:=pageSize;  
    14. if v_PageSize=0 then  
    15. v_PageSize:=1;  
    16. end if;  

     

    ibatis調(diào)用Oracle分頁存儲過程中需要統(tǒng)計記錄數(shù)量

     

    1. v_SQL_Count :'select count(*) from (' ? ? sqlscript ? ?') a ';  
    2. execute immediate v_SQL_Count into totalCount;  

     

    計算總頁數(shù)

     

    1. totalPage:=CEIL(totalCount/v_PageSize); 

    驗證頁號 如果頁號大余了最大頁數(shù),返回最后一頁

     

    1. v_PageIndex:=pageIndex;  
    2. if v_PageIndex>totalPage then  
    3. v_PageIndex:=totalPage;  
    4. end if;  

     

    計算開始的Index和結(jié)束的Index

     

    1. v_StartIndex:=(v_PageIndex-1)*v_PageSize 1;  
    2. v_EndIndex:=v_PageIndex*v_PageSize;  
    3. v_SQL:='SELECT /* FIRST_ROWS */* FROM (';  
    4. v_SQLv_SQL:=v_SQL ? ?' SELECT A.*, ROWNUM RN ';  
    5. v_SQLv_SQL:=v_SQL ? ?' FROM (' ? ?sqlscript ? ?') A ';  
    6. v_SQLv_SQL:=v_SQL ? ?' WHERE ROWNUM <= ' ? ?v_EndIndex;  
    7. v_SQLv_SQL:=v_SQL ? ?')WHERE RN >= ' ? ?v_StartIndex;  
    8. open v_cur for v_SQL;  
    9. end P_QuerySplit;   



  • create or replace procedure PageInation(   
  • p_CURSOR out TESTPACKAGE.Test_CURSOR,   
  • tableName in varchar2,   
  • tableResult in varchar2,   
  • lowerNum in numeric,   
  • higherNum in numeric   
  • ) is    
  • sqls varchar2(2000);   
  • begin   
  • sqls :='select * from ( select rownum rownum_,'||tableResult||' from ('||tableName||') row_ where rownum <=' ||higherNum||') where rownum_ >'||lowerNum;    
  • OPEN p_CURSOR FOR sqls;   
  • end PageInation;    
  • posted on 2010-09-13 21:42 w@ns0ng 閱讀(197) 評論(0)  編輯  收藏 所屬分類: Database

    主站蜘蛛池模板: 亚洲精品在线电影| 亚洲午夜国产精品无码| 亚洲日本国产乱码va在线观看| 在线免费观看伊人三级电影| 国产av无码专区亚洲国产精品| 人妻免费久久久久久久了| 免费在线观看理论片| 一级片在线免费看| 337p日本欧洲亚洲大胆裸体艺术 | 亚洲老熟女五十路老熟女bbw| 青青青免费国产在线视频小草| 亚洲人成免费电影| 全免费a级毛片免费**视频| 亚洲AV综合永久无码精品天堂| 国产18禁黄网站免费观看| 免费的黄色的网站| 久久精品九九亚洲精品天堂| 久久久久久成人毛片免费看| 亚洲经典在线观看| 成年人性生活免费视频| 免费看黄网站在线看| 奇米影视亚洲春色| 99国产精品免费观看视频| 99热亚洲色精品国产88| 亚洲国产精品人人做人人爽 | 无码日韩精品一区二区免费暖暖 | 亚洲一区综合在线播放| 91精品视频免费| 在线观看亚洲视频| 在线A亚洲老鸭窝天堂| 日日麻批免费40分钟无码| 亚洲 日韩经典 中文字幕| 国产一区二区三区免费在线观看| 黄色视屏在线免费播放| 亚洲视频一区二区在线观看| 精品免费国产一区二区| 野花香在线视频免费观看大全| 亚洲av无码专区在线| 男女作爱在线播放免费网站| 亚洲一区二区三区亚瑟| 亚洲色婷婷综合开心网|