<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

    主站蜘蛛池模板: 亚洲av成人无码久久精品| 91亚洲国产成人精品下载| 亚洲色无码国产精品网站可下载| 日韩免费无砖专区2020狼| 免费永久看黄在线观看app| 亚洲第一视频网站| 性色午夜视频免费男人的天堂| 97久久精品亚洲中文字幕无码| 亚洲天堂中文资源| 羞羞网站在线免费观看| 亚洲精品国产福利一二区| 一级特黄a免费大片| 成人免费无码大片A毛片抽搐| 久久久久久精品免费看SSS| 亚洲综合激情另类小说区| 无码人妻精品中文字幕免费| 亚洲成A∨人片在线观看不卡| 亚洲精品成a人在线观看夫| 四虎免费在线观看| 亚欧洲精品在线视频免费观看| 真正全免费视频a毛片| 午夜不卡久久精品无码免费 | 亚洲国产中文字幕在线观看| 香蕉97碰碰视频免费| 久久亚洲中文字幕精品一区| 99热亚洲色精品国产88| 国产成人在线免费观看| a视频在线观看免费| 成年女人喷潮毛片免费播放| 狠狠入ady亚洲精品| 亚洲av永久无码精品表情包| 国产精品内射视频免费| 亚洲日本在线免费观看| 88av免费观看| 在线视频亚洲一区| 亚洲理论电影在线观看| 欧美日韩国产免费一区二区三区 | 亚洲毛片基地日韩毛片基地| 啦啦啦中文在线观看电视剧免费版 | 日本视频免费高清一本18| 亚洲一区二区精品视频|