对sql进行分页处理(Oracle版)

直接代码

/// <summary>
        /// 对sql进行分页处理
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static string GetPaginationSQL(string sql)
        {
            int intPageSize = int.Parse(HttpContext.Current.Request["rows"] == null ? "0" : HttpContext.Current.Request["rows"].ToString());
            int intCurrentPage = int.Parse(HttpContext.Current.Request["page"] == null ? "0" : HttpContext.Current.Request["page"].ToString());
            string sort = HttpContext.Current.Request["sort"];
            string order = HttpContext.Current.Request["order"];

            int startRow = (intCurrentPage - 1) * intPageSize + 1;
            int endRow = startRow - 1 + intPageSize;
            StringBuilder sb = new StringBuilder();

            sb.Append("SELECT * FROM ( ");
            sb.Append("SELECT A.*, ROWNUM RN FROM ( ");
            sb.AppendFormat("{0} ", sql);
            sb.Append(string.IsNullOrEmpty(sort) ? "" : string.Format("order by {0} {1} ", sort, order));
            sb.AppendFormat(") A WHERE ROWNUM <={0} ", endRow);
            sb.AppendFormat(") WHERE RN >={0} ", startRow);

            return sb.ToString();
        }
时间: 2024-08-27 10:28:06

对sql进行分页处理(Oracle版)的相关文章

ArcSDE10.1配置Oracle 监听器来使用SQL操作ST_Geometry(个人改动版)

发了两天的时间来解决配置Oracle 监听器来使用SQL操作ST_Geometry的配置,网上搜索一大片,结果真正找到的只有方法可用,下面把这个方法我个人在总结下. ArcSDE10.1配置Oracle 监听器来使用SQL操作ST_Geometry和其他版本的配置区别还是有很多不同的,不过不像网上说的配置那么复杂也不需要配置监听,下面我按照步骤说下配置方法: 一.配置user_libraries库 找到arcgsSde下面对应库的路径,例如我的路径是在D:\Program Files\ArcGI

Oracle基础(五)pl/sql进阶(分页过程)

编写分页过程 通过pl/sql实现分页过程,再该过程中由简单到难一步步深入,目的在于通过该案例熟悉pl/sql的各种存储过程,包,游标,如何在java中调用等内容的学习. 1.无返回值的存储过程 例如 1.可以向book表添加书, ---建表 Create table book(bookId number,bookName varchar2(50),publishHouse varchar2(50)); --编写过程 in 表示变量为输入值,如果不写默认为输入值,而不是输出变量,out为输出值

PL\SQL Developer连接本地Oracle 11g数据库

1.登录PL/SQL Developer 这里省略Oracle数据库和PL/SQL Developer的安装步骤,注意在安装PL/SQL Developer软件时,不要安装在Program Files (x86)目录下,不然无法启动PL/SQL Developer. 奇怪这里为什么选择不到数据库的TNS呢?我是先安装数据库,再安装PL/SQL  Developer.按理说安装PL/SQL Developer时,就已经识别到了Oracle Home和OCI Libaray了.管它呢?先以非登录方式

PL/SQL Developer连接本地Oracle 11g 64位数据库

1.安装oracle Clinet 首先到Oracle官网上去下载一个Oracle 11g Client,不过需要先申请一个Oracle 帐号,才能下载. 目前下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 这个一个绿色版的Oracle Client,因此只要需要解压了,就可以是.将下载的Oracle Client文件instantclient-basic-win3

PL/SQL Developer连接本地Oracle 11g 64位数据库和快捷键设置

1.登录PL/SQL Developer 这里省略Oracle数据库和PL/SQL Developer的安装步骤,注意在安装PL/SQL Developer软件时,不要安装在Program Files (x86)目录下,不然无法启动PL/SQL Developer. 奇怪这里为什么选择不到数据库的TNS呢?我是先安装数据库,再安装PL/SQL  Developer.按理说安装PL/SQL Developer时,就已经识别到了Oracle Home和OCI Libaray了.管它呢?先以非登录方式

SQL语句学习手册实例版

SQL语句学习手册实例版 表操作 例1  对于表的教学管理数据库中的表 STUDENTS ,可以定义如下: CREATE  TABLE  STUDENTS (SNO      NUMERIC (6, 0) NOT NULL SNAME    CHAR (8) NOT NULL AGE      NUMERIC(3,0) SEX      CHAR(2) BPLACE  CHAR(20) PRIMARY KEY(SNO)) 例2  对于表的教学管理数据库中的表 ENROLLS ,可以定义如下: C

PL/SQL DEV远程连接oracle

环境:win7 64bit旗舰版 oracle 11g 所需软件及下载地址: Oracle 64bit客户端 http://www.oracle.com/technetwork/topics/winx64soft-089540.html PL/SQL DEV http://www.plsqldev.com/ 配置tnsnames.ora文件实例 #tnsnames.oraNetworkConfigurationFile: F:\oracle\product\11.2.0\client_1\net

java 数据库连接池 Oracle版

首先应加入连接池和数据库连接的配置文件:数据库连接包:ojdbc6.jar数据库连接池包:commons-pool2-2.2.jar                       commons-dbcp2-2.0.jar数据库连接配置文件:config.properties使用连接池连接一定不要忘记关闭否则会很倒霉DBHelper 的写法 import java.io.IOException;import java.io.InputStream;import java.sql.Connectio

解决hibernate对Sql Server分页慢的问题

一.hibernate分页 hibernate对MsSql的伪分页 分页是web项目中比不可少的一个功能,数据量大的时候不能全部展示必然要用到分页技术.相信大家对hibernate中的分页都不陌生: Java代码   public Query setMaxResults(int maxResults); public Query setFirstResult(int firstResult); 只要调用了这两个方法并设置好参数,hibernate自动分页完全屏蔽了底层数据库分页技术,这也是众多开