zoukankan      html  css  js  c++  java
  • Oracle分页

    Code
    create or replace procedure P_QuerySplit(
          sqlscript 
    varchar2,     --表名/SQL语句
          pageSize number,       --每页记录数
          pageIndex number,      --当前页
          totalCount out number--总记录数
          totalPage out number--总页数
          v_cur out sys_refcursor --返回游标
          ) is
    /**
       * by chenjianxin 2008-5-3
       *
       
    */

    v_PageSize 
    number;
    v_PageIndex 
    number;
    v_SQL_Count 
    varchar2(4000);
    v_SQL 
    varchar2(4000);
    v_StartIndex 
    number;
    v_EndIndex 
    number;
    begin
    v_PageSize:
    =pageSize;
    if v_PageSize=0 then
        v_PageSize:
    =1;
    end if;

    --统计记录数量
    v_SQL_Count := 'select count(*) from ('|| sqlscript ||') a ';
    execute immediate v_SQL_Count into totalCount;
    --计算总页数
    totalPage:=CEIL(totalCount/v_PageSize);
    --验证页号 如果页号大余了最大页数,返回最后一页
    v_PageIndex:=pageIndex;
    if v_PageIndex>totalPage then
        v_PageIndex:
    =totalPage;
    end if;

    --计算开始的Index和结束的Index
    v_StartIndex:=(v_PageIndex-1)*v_PageSize+1;
    v_EndIndex:
    =v_PageIndex*v_PageSize;

    v_SQL:
    ='SELECT /*+ FIRST_ROWS */* FROM (';
    v_SQL:
    =v_SQL||' SELECT A.*, ROWNUM RN ';
    v_SQL:
    =v_SQL||' FROM ('||sqlscript||') A ';
    v_SQL:
    =v_SQL||' WHERE ROWNUM <= '||v_EndIndex;
    v_SQL:
    =v_SQL||')WHERE RN >= '||v_StartIndex;

    open v_cur for v_SQL;
    end P_QuerySplit;
  • 相关阅读:
    问题解决-Plugin with id 'com.github.dcendents.android-maven' not found
    hadoop 04 一 HA高可用配置
    hadoop 03 一 Hadoop机架感知配置
    Windows平台安装配置Hadoop
    hadoop 02一 hadoop配置
    hadoop 01一 hadoop安装配置
    Centos7下载和安装教程
    mysql 命令行导出数据
    RabbitMQ 集群部署(linux-centos6.5)
    Spring 集成RabbitMq
  • 原文地址:https://www.cnblogs.com/shineqiujuan/p/1509598.html
Copyright © 2011-2022 走看看