ORACLE 分頁過程

          --創(chuàng)建保存查詢結(jié)果集的 cursor
          create or replace package pkg_query as type cur_query is ref cursor; end pkg_query;
          --插件存儲過程
          create or replace procedure Pagers(
          v_cur out pkg_query.cur_query,--查詢結(jié)果
          numCount out number,--總記錄數(shù)
          page in number,--數(shù)據(jù)頁數(shù),從1開始
          pageSize in number,--每頁大小
          tableName varchar2,--表名
          strWhere varchar2,--where條件
          Orderby varchar2
          ) is

          strSql varchar2(2000);--獲取數(shù)據(jù)的sql語句
          pageCount number;--該條件下記錄頁數(shù)
          startIndex number;--開始記錄
          endIndex number;--結(jié)束記錄

          begin

            strSql:='select count(*) from '||tableName;
            if strWhere is not null or strWhere<>'' then 
               strSql:=strSql||' where '||strWhere;
            end if; 
            
            EXECUTE IMMEDIATE strSql INTO numCount;
            --計算數(shù)據(jù)記錄開始和結(jié)束
            pageCount:=numCount/pageSize+1;
            startIndex:=(page-1)*pageSize+1;
            endIndex:=page*pageSize;
            
            strSql:='select rownum ro, t.* from '||tableName||' t';  
            strSql:=strSql||' where rownum<='||endIndex;
            
            if strWhere is not null or strWhere<>'' then 
               strSql:=strSql||' and '||strWhere;
            end if;
            
            if  Orderby is not null or Orderby<>''  then 
               strSql:=strSql||' order by '||Orderby;
            end if;
            
            strSql:='select * from ('||strSql||') where ro >='||startIndex;  
            DBMS_OUTPUT.put_line(strSql);

            OPEN v_cur FOR strSql; 
          end Pagers;

          posted on 2011-01-11 14:41 himalayas 閱讀(203) 評論(0)  編輯  收藏 所屬分類: database

          <2011年1月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿

          隨筆分類(15)

          隨筆檔案(16)

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 睢宁县| 枣阳市| 柘荣县| 商丘市| 桂平市| 桓台县| 嘉黎县| 沧源| 德清县| 寿宁县| 吴川市| 文昌市| 革吉县| 区。| 顺义区| 炉霍县| 扶绥县| 罗平县| 钦州市| 古田县| 河东区| 名山县| 德保县| 农安县| 灵寿县| 象州县| 乌拉特中旗| 白银市| 金沙县| 呼伦贝尔市| 德惠市| 莒南县| 高清| 永顺县| 高平市| 丽水市| 张家界市| 电白县| 丹江口市| 板桥市| 富川|