当前位置:首页 » 存储配置 » 高效分页存储过程

高效分页存储过程

发布时间: 2022-07-17 09:40:56

A. 如何创建高效的Oracle分页存储过程

PROCEDURE p_qry_procts(ret OUT pkg_pub.ret_cur,
pi_prodname IN T_TABLE.prodname%TYPE, --
pi_pageindex IN int, -- 起始记录数
pi_pagecnt IN int) -- 每页显示记录数
IS
BEGIN

OPEN ret FOR
SELECT *
FROM (SELECT COUNT(0) over() total_cnt, rownum row_num, u.*
FROM (SELECT your_cols
FROM T_TABLE rec
WHERE 1 = 1) u) res
WHERE res.row_num >= pi_pageindex
AND res.row_num < pi_pageindex + pi_pagecnt;
END p_qry_procts;

B. 一个比较实用的大数据量分页存储过程

一个比较实用的大数据量分页存储过程

create proc sp_PublicTurnPageWebSite( @TBName nvarchar(100)=‘‘, --表名,如 pinyin
@PageSize int=10, --每页的记录数,默认为 10
@CurPage int=1, --表示当前页 1
@KeyField nvarchar(100)=‘ID‘, --关键字段名,默认为 ID,该字段要求是表中的索引 或 无重复和不为空的字段
@KeyAscDesc nvarchar(4)=‘ASC‘, --关键字的升、降序,默认为升序 ASC , 降序为 DESC
@Fields nvarchar(500)=‘*‘, --所选择的列名,默认为全选
@Condition nvarchar(200)=‘‘, --where 条件,默认为空
@Order nvarchar(200)=‘‘ --排序条件,默认为空
) with encryption as
BEGIN
if @TBName = ‘‘
begin
raiserror(‘请指定表名!‘,11,1)
return
end
if @PageSize <=0 or @CurPage <0
begin
raiserror(‘当前页数和每页的记录数都必须大于零!‘,11,1)
return
end
if @KeyAscDesc = ‘DESC‘
set @KeyAscDesc = ‘<‘
else
set @KeyAscDesc = ‘>‘
if @Condition <> ‘‘
set @Condition = ‘ where ‘ + @Condition
一个比较实用的大数据量分页存储过程
declare @SQL nvarchar(2000) set @SQL = ‘‘
if @CurPage = 1
set @SQL = @SQL + ‘SELECT Top ‘ + cast(@PageSize as nvarchar(20)) + ‘ ‘ + @Fields + ‘ FROM ‘ + @TBName + @Condition + ‘ ‘ + @Order
else
begin
declare @iTopNum int
set @iTopNum = @PageSize * (@CurPage - 1)
set @SQL = @SQL + ‘declare @sLastValue nvarchar(100)‘ + char(13)
set @SQL = @SQL + ‘SELECT Top ‘ + cast(@iTopNum as nvarchar(20)) + ‘ @sLastValue=‘ + @KeyField + ‘ FROM ‘ + @TBName + @Condition + ‘ ‘ + @Order + char(13)

declare @Condition2 nvarchar(200)
if @Condition = ‘‘
set @Condition2 = ‘ where ‘ + @KeyField + @KeyAscDesc + ‘@sLastValue ‘
else
set @Condition2 = ‘ and ‘ + @KeyField + @KeyAscDesc + ‘@sLastValue ‘
set @SQL = @SQL + ‘SELECT Top ‘ + cast(@PageSize as nvarchar(20)) + ‘ ‘ + @Fields + ‘ FROM ‘ + @TBName + @Condition + @Condition2 + @Order
end

热点内容
随机启动脚本 发布:2025-07-05 16:10:30 浏览:511
微博数据库设计 发布:2025-07-05 15:30:55 浏览:14
linux485 发布:2025-07-05 14:38:28 浏览:296
php用的软件 发布:2025-07-05 14:06:22 浏览:747
没有权限访问计算机 发布:2025-07-05 13:29:11 浏览:420
javaweb开发教程视频教程 发布:2025-07-05 13:24:41 浏览:671
康师傅控流脚本破解 发布:2025-07-05 13:17:27 浏览:229
java的开发流程 发布:2025-07-05 12:45:11 浏览:672
怎么看内存卡配置 发布:2025-07-05 12:29:19 浏览:272
访问学者英文个人简历 发布:2025-07-05 12:29:17 浏览:822