當前位置:首頁 » 存儲配置 » 高效分頁存儲過程

高效分頁存儲過程

發布時間: 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

熱點內容
編譯期錯誤提示 發布:2024-10-07 20:07:23 瀏覽:296
阿里雲伺服器打開慢 發布:2024-10-07 20:06:33 瀏覽:577
磁存儲行業的前景 發布:2024-10-07 20:01:29 瀏覽:548
android對象序列化 發布:2024-10-07 20:01:28 瀏覽:760
安卓上面的微信如何恢復 發布:2024-10-07 19:57:45 瀏覽:52
510低配包括哪些配置 發布:2024-10-07 19:38:21 瀏覽:556
ping伺服器地址一直丟包 發布:2024-10-07 19:37:34 瀏覽:588
怎麼去除手機鎖屏密碼 發布:2024-10-07 18:56:05 瀏覽:67
怎樣注冊手機貼吧賬號密碼是什麼 發布:2024-10-07 18:55:17 瀏覽:365
埠安全配置屬於什麼 發布:2024-10-07 18:41:01 瀏覽:794