ORACLE 分頁過程

          --創建保存查詢結果集的 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,--查詢結果
          numCount out number,--總記錄數
          page in number,--數據頁數,從1開始
          pageSize in number,--每頁大小
          tableName varchar2,--表名
          strWhere varchar2,--where條件
          Orderby varchar2
          ) is

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

          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;
            --計算數據記錄開始和結束
            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 閱讀(204) 評論(0)  編輯  收藏 所屬分類: database

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

          導航

          統計

          常用鏈接

          留言簿

          隨筆分類(15)

          隨筆檔案(16)

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 博客| 阿巴嘎旗| 阳山县| 怀柔区| 芮城县| 南宁市| 溧水县| 荣昌县| 莫力| 报价| 吉水县| 大田县| 泰和县| 高唐县| 平昌县| 丰都县| 常宁市| 安溪县| 宁津县| 抚顺市| 海城市| 宁河县| 隆化县| 喀喇| 龙南县| 碌曲县| 河池市| 五峰| 烟台市| 武胜县| 青田县| 肥乡县| 肥东县| 习水县| 吴桥县| 繁峙县| 闵行区| 汾西县| 抚顺市| 曲沃县| 寻甸|