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

高效分页存储过程

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

热点内容
python嵌套for循环 发布:2025-05-11 01:51:44 浏览:225
安卓怎么取消后台限制 发布:2025-05-11 01:45:45 浏览:254
一键搭建sk5服务器 发布:2025-05-11 01:40:09 浏览:511
鸿业acs加密锁模拟器 发布:2025-05-11 01:38:49 浏览:935
神庙逃亡2安卓版怎么玩 发布:2025-05-11 01:38:05 浏览:159
凯杰都什么配置 发布:2025-05-11 01:38:04 浏览:469
php微信开源系统源码 发布:2025-05-11 01:37:54 浏览:811
pythonfor多个参数 发布:2025-05-11 01:12:32 浏览:74
plcsfc编程 发布:2025-05-11 01:11:56 浏览:166
安卓手机能删除什么东西 发布:2025-05-11 01:03:55 浏览:415