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

高效分页存储过程

发布时间: 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

热点内容
app服务端源码 发布:2025-03-21 05:56:41 浏览:102
信道估计算法 发布:2025-03-21 05:37:33 浏览:865
怎么用命令方块做出服务器 发布:2025-03-21 05:22:58 浏览:798
歌曲脚本 发布:2025-03-21 05:19:31 浏览:569
python的range函数 发布:2025-03-21 05:18:48 浏览:720
php信息录入系统 发布:2025-03-21 05:17:21 浏览:345
安卓手机里的hms是什么 发布:2025-03-21 05:15:56 浏览:34
恢复出厂设置如何设置密码 发布:2025-03-21 05:15:46 浏览:956
如何设置网页密码锁 发布:2025-03-21 05:15:01 浏览:816
linux如何安装windows 发布:2025-03-21 05:09:19 浏览:210