<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, 每頁記錄數

    pageIndex integer, 當前頁

    totalCount out number, 總記錄數

    totalPage out number, 總頁數

    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調用Oracle分頁存儲過程中需要統計記錄數量

     

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

     

    計算總頁數

     

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

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

     

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

     

    計算開始的Index和結束的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无码去区首 | 亚洲精品国产字幕久久不卡| 国产亚洲一卡2卡3卡4卡新区| a级毛片无码免费真人| 亚洲中文字幕无码av在线| 永久在线观看www免费视频| 亚洲第一区视频在线观看| 国产成人免费在线| 亚洲AV无码专区在线亚| 青青视频观看免费99| 亚洲色偷精品一区二区三区| 大学生一级特黄的免费大片视频 | 亚洲高清无在码在线电影不卡| 中文字幕在线观看免费视频| 亚洲成a人不卡在线观看| 最近的中文字幕大全免费版| 亚洲色www永久网站| 又黄又大又爽免费视频| a级成人毛片免费视频高清| 亚洲国产高清视频| 男女免费观看在线爽爽爽视频| 一本天堂ⅴ无码亚洲道久久| 日本免费人成黄页网观看视频| 在线播放免费人成视频网站| 国产精品亚洲精品日韩已满| 无码精品A∨在线观看免费| 亚洲色大成WWW亚洲女子| 亚洲精品视频久久久| 午夜免费福利视频| 亚洲JLZZJLZZ少妇| 国产亚洲综合网曝门系列| 亚洲精品免费网站| 一边摸一边桶一边脱免费视频 | 欧洲精品码一区二区三区免费看| 国产亚洲老熟女视频| 久久成人国产精品免费软件| 亚洲AV无码专区国产乱码不卡| 久久精品国产亚洲7777| 波多野结衣中文字幕免费视频 | 91大神在线免费观看| 亚洲αⅴ无码乱码在线观看性色|