<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 分頁(yè):

    create or replace procedure P_QuerySplit(

    sqlscript varchar2, 表名/SQL語(yǔ)句

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

    pageIndex integer, 當(dāng)前頁(yè)

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

    totalPage out number, 總頁(yè)數(shù)

    v_cur out sys_refcursor 返回游標(biāo)

     

    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分頁(yè)存儲(chǔ)過(guò)程中需要統(tǒng)計(jì)記錄數(shù)量

     

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

     

    計(jì)算總頁(yè)數(shù)

     

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

    驗(yàn)證頁(yè)號(hào) 如果頁(yè)號(hào)大余了最大頁(yè)數(shù),返回最后一頁(yè)

     

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

     

    計(jì)算開(kāi)始的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 閱讀(205) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Database

    主站蜘蛛池模板: 久久亚洲国产成人影院网站 | 久久久精品国产亚洲成人满18免费网站| 特级毛片在线大全免费播放| 免费人妻无码不卡中文字幕系| 大陆一级毛片免费视频观看i| 亚洲日韩乱码中文无码蜜桃臀网站| 亚洲福利一区二区精品秒拍| igao激情在线视频免费| 免费观看美女用震蛋喷水的视频| 亚洲一级特黄大片无码毛片| 亚洲色偷精品一区二区三区| 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 亚洲国产精品成人网址天堂| 亚洲图片校园春色| a级在线免费观看| 日韩精品成人亚洲专区| 亚洲国产91在线| 久久久久久一品道精品免费看| 亚洲成A人片777777| 一级特黄录像视频免费| 日本不卡视频免费| 天堂亚洲国产中文在线| h在线观看视频免费网站| 亚洲国产日韩综合久久精品| 最近中文字幕mv免费高清视频7| 久久精品国产亚洲AV麻豆网站| 中文在线免费看视频| 亚洲国产精品自在拍在线播放| a级毛片免费观看在线| 亚洲AV日韩精品久久久久久 | 国产免费无码一区二区| 亚洲人成网站18禁止一区| 亚洲AV无码男人的天堂| 女性无套免费网站在线看| 免费无码婬片aaa直播表情| 日韩免费高清视频网站| 国产免费福利体检区久久| 亚洲白嫩在线观看| 又粗又大又硬又爽的免费视频 | 国产一精品一AV一免费孕妇| 亚洲嫩草影院在线观看|