Oracle通用分页存储过程的创建与使用 1.创建Oracle包的定义.使用 REF CURSOR 数据类型来处理 Oracle 结果集.REF CURSOR 是一个指向 PL/SQL 查询所返回的结果集的指针.与普通的游标不同,REF CURSOR 是一个变量,它是对游标的引用,可以在执行时将其设置为指向不同的结果集.使用 REF CURSOR 输出参数可以将 Oracle 结构化程序的结果集传递回调用应用程序.通过在调用应用程序中定义 OracleType.Cursor 数据类型的输出参数,…
1.alert USE [数据库名称] GO /****** Object: StoredProcedure [dbo].[dbTab_PagerHelper] Script Date: 08/22/2010 13:30:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Jarry -- Create dat…
SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程,支持单表或多表结查集分页,存储过程如下: /******************/ --Author:梦在旅途(www.Zuowenjun.cn) --CreateDate:2015-06-02 --Function:分页获取数据 /******************/ create procedure [dbo].[sp_DataPaging] ( @selectsql nvarchar(200),-…
/****** 对象: StoredProcedure [dbo].[P_CommonPagination] 脚本日期: 07/22/2009 10:22:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: 2008-12-16 -- Description: 支持DISTINC…
MySql通用分页存储过程 1MySql通用分页存储过程 2 3过程参数 4p_cloumns varchar(500),p_tables varchar(100),p_where varchar(4000),p_order varchar(100),p_pageindex int,p_pagesize int,out p_recordcount int,out p_pagecount int 5 6$$:begin 7 declare v_sqlcounts varchar(4000); 8…
经过一个下午的时间,和我一个同事(绝对是高手)的共同努力下,摸索出了以下的思路: 1.确定存储的输入参数: 1)SQL脚本,该参数接收完整的.正确的SQL检索文本,可将原应用中写好的SQL脚本直接传入 2)每页的数据容量,就是一页有多少条数据 3)当前页码 2.确定分页机制: 1)执行传入的SQL脚本,并将结果生成临时表 2)修改临时表的结构,增加标识列字段 3)根据标识列字段,计算出指定页码内的记录范围,并返回 4)返回总数据条数,用于客户端进行分页显示 根据以上的思路,编写出以下通用的分页存…
mysql通用分页存储过程遇到的问题(转载) http://www.cnblogs.com/daoxuebao/archive/2015/02/09/4281980.html…
Sql Server2005通用分页存储过程 CREATE PROCEDURE [dbo].[Common_GetPagedList] ( @TableName nvarchar(100), --表名 @ColumnNames nvarchar(1000) = '*', --字段名集合(全部字段为*,其它逗号分隔) @OrderClause nvarchar(1000), --排序从句(不包含order by) @WhereClause nvarchar(1000) =N' 1=1 ',   …
创建存储过程: USE [数据库名] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCedure [dbo].[SplitPage] ), --//输入参数:SQL检索语句或表名 ), --//输入参数:排序依据 ), --where 条件,如果不带查询条件,请用 1=1 @pageIndex int, --//输入参数:当前页码 @pageSize int, --//输入参数:每页显示记录条数 @pageCount…
一.创建包 CREATE OR REPLACE PACKAGE PKG_JK_LAB_BASIC IS TYPE CURSOR_TYPE IS REF CURSOR; PROCEDURE SP_GET_PAGINATION ( pi_tableName in varchar2, --表名 pi_where in varchar2, --查询条件 pi_columns in varchar2, --查询列集合 pi_orderColumn in varchar2, --排序的列 pio_curPa…
写在前面 从SQLSERVER 2005开始,提供了Row_Number()函数,利用函数生成的Index来处理分页,按照正常的逻辑思维都是传pageIndex和pageSize来完成分页,昨天前端和我沟通,他们使用jQuery.DataTable.js插件,而且经过了公司底层的封装,pageIndex需要变动一下,变成pageIndex*pageSize来传. 也就是说按每页显示30条算,第一次传0,第二次传30这样来计算,我也是醉了. 1.传pageIndex和pageSize CREATE…
USE [AAA_TYDC] GO /****** Object: StoredProcedure [dbo].[proc_DataPagination] Script Date: 11/20/2014 11:04:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /********************************************************* * 作 用:数据分页 * 作 者:evafly…
来源:http://www.jb51.net/article/19936.htm CREATE PROCEDURE commonPagination ), --要显示的列名,用逗号隔开 ), --要查询的表名 ), --排序的列名 ), --排序的方式,升序为asc,降序为 desc ), --where 条件,如果不带查询条件,请用 1=1 @pageIndex int, --当前页索引 @pageSize int, --页大小(每页显示的记录条数) @pageCount int --总页数,…
DELIMITER $$ USE `tsb_asksys`$$ DROP PROCEDURE IF EXISTS `P_viewPage`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `P_viewPage`( $TableName ),/*表名*/ $FieldList ), /*显示列名*/ $PrimaryKey ), /*单一主键或唯一值键*/ $WhereStr ), /*查询条件 不含'where'字符*/ $OrderStr ), /…
--提取分页数据,返回总记录数 Create procedure [dbo].[sp_Common_GetDataPaging_ReturnDataCount] ( @SqlString varchar(max), --查询语句 @PageNumber int, --当前的页码 @PageSize int, --每页显示的数据量 @SequenceField varchar(100), --排序字段 @DataCount int out --总数据量 ) as begin DECLARE @Sq…
--提取分页数据,返回总记录数 Createprocedure [dbo].[sp_Common_GetDataPaging_ReturnDataCount] ( @SqlString varchar(max), --查询语句 @PageNumber int, --当前的页码 @PageSize int, --每页显示的数据量 @SequenceField varchar(100), --排序字段 @DataCount int out --总数据量 ) as begin DECLARE @Sql…
create or replace procedure Pager( page in number,--数据页数,从1开始 pageSize in number,--每页大小 tableName nvarchar2,--表名 strWhere nvarchar2,--where条件 Orderby nvarchar2, numCount out number,--总记录数 v_cur out pkg_query.cur_query) is strSql );--获取数据的sql语句 pageCo…
create proc commonPagination ), --要显示的列名,用逗号隔开 ), --要查询的表名 ), --排序的列名 ), --排序的方式,升序为asc,降序为 desc ), --where 条件,如果不带查询条件,请用 1=1 @pageIndex int, --当前页索引 @pageSize int, --页大小(每页显示的记录条数) @pageCount int output --总页数,输出参数 as begin ) --得到总记录条数的语句 ) --查询语句 s…
在数据库中书写通用分页存储过程,有利于代码的维护以及执行效率的提升 create or replace procedure Sp_QueryDatePage ( tableName in varchar2,--表名 fieldes in varchar2,---查询结果显示字段 wherecase in varchar2,---查询条件 pageSize in number, --页记录数 pageNow in number,--当前页 orderField varchar2,-排序字段,为空表…
来自:http://www.cnblogs.com/vagerent/archive/2007/10/17/927825.html 单主键: CREATE PROC P_viewPage    /**//*        nzperfect [no_mIss] 高效通用分页存储过程(双向检索) 2007.5.7  QQ:34813284        敬告:适用于单一主键或存在唯一值列的表或视图        ps:Sql语句为8000字节,调用时请注意传入参数及sql总长度不要超过指定范围  …
原文:如此高效通用的分页存储过程是带有sql注入漏洞的 在google中搜索“分页存储过程”会出来好多结果,是大家常用的分页存储过程,今天我却要说它是有漏洞的,而且漏洞无法通过修改存储过程进行补救,如果你觉得我错了,请读下去也许你会改变看法. 通常大家都会认为存储过程可以避免sql注入的漏洞,这适用于一般的存储过程,而对于通用分页存储过程是不适合的,请看下面的代码和分析! 一般的通用的分页存储过程代码如下: 通用分页存储过程CREATE PROCEDURE pagination@tblName …
原文:防SQL注入:生成参数化的通用分页查询语句 前些时间看了玉开兄的“如此高效通用的分页存储过程是带有sql注入漏洞的”这篇文章,才突然想起某个项目也是使用了累似的通用分页存储过程.使用这种通用的存储过程进行分页查询,想要防SQL注入,只能对输入的参数进行过滤,例如将一个单引号“'”转换成两个单引号“''”,但这种做法是不安全的,厉害的黑客可以通过编码的方式绕过单引号的过滤,要想有效防SQL注入,只有参数化查询才是最终的解决方案.但问题就出在这种通用分页存储过程是在存储过程内部进行SQL语句拼…
本文参考链接:http://blog.sina.com.cn/s/blog_8604ca230100vro9.html 探索查询语句: --分页参数:size = 20 page = 2 --没有order by的查询 -- 嵌套子查询,两次筛选(推荐使用) --SELECT * -- FROM (SELECT ROWNUM AS rowno, t.* -- FROM DONORINFO t -- WHERE t.BIRTHDAY BETWEEN TO_DATE ('19800101', 'yy…
page --没有order by的查询 -- 嵌套子查询,两次筛选(推荐使用) --SELECT * -- FROM (SELECT ROWNUM AS rowno, t.* -- FROM DONORINFO t -- WHERE t.BIRTHDAY BETWEEN TO_DATE ('19800101', 'yyyymmdd') -- AND TO_DATE ('20060731', 'yyyymmdd') -- AND ROWNUM <= 20*2) table_alias -- WH…
Delphi调用SQL分页存储过程实例 (-- ::)转载▼ 标签: it 分类: Delphi相关 //-----下面是一个支持任意表的 SQL SERVER2000分页存储过程 //----分页存储过程开始创建----------------------------------------------------------------------------------------------------------- IF EXISTS (SELECT name FROM sysobje…
sql server 2000 单主键高效分页存储过程 (支持多字段排序) Create PROC P_viewPage             /*              nzperfect [no_mIss] 高效通用分页存储过程(双向检索) 2007.5.7  QQ:34813284              敬告:适用于单一主键或存在唯一值列的表或视图              ps:Sql语句为8000字节,调用时请注意传入参数及sql总长度不要超过指定范围            …
建立一个 Web 应用,分页浏览功能必不可少.这个问题是数据库处理中十分常见的问题.经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页.但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存.游标一建立,就将相关的记录锁住,直到取消游标.游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作.而对于多表和大表中定义的游标(大的数据集合)循环很容易使程序进入一个漫长的等待…
注:本示例来源于韩顺平[10天玩转oracle数据库]视频教程 1.创建包同时创建游标 create or replace package pagingPackage is type paging_cursor is ref cursor; end; / 2.创建分页存储过程 create or replace procedure paging_cursor ( v_in_table in varchar2, v_in_pagesize in number, v_in_pagenow in nu…
撰写过程:网上搜集测试了好多的Oracle分页存储过程代码,经整理后终于通过测试,特分享给大家 测试步骤:1.运行创建包命令;2.运行创建存储过程命令;3.运行调用分页存储过程语句 测试环境:windows2003+Oracle11g+PLSQL Developer --1.创建包命令 create or replace package mypackage as   type cursor_page is ref cursor;   Procedure myprocdure(          …
http://database.51cto.com/art/200512/12923.htm 建立一个 Web 应用,分页浏览功能必不可少.这个问题是数据库处理中十分常见的问题.经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页.但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存 中,很费内存.游标一建立,就将相关的记录锁住,直到取消游标.游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的…