如何在Oracle存儲過(guò)程中實(shí)現分頁(yè)?

4年前 (2020-12-28)閱讀607回復0
訪(fǎng)客
訪(fǎng)客
  • 管理員
  • 發(fā)消息
  • 注冊排名3
  • 經(jīng)驗值65770
  • 級別管理員
  • 主題13152
  • 回復5
樓主

??

1、首先建立一個(gè)包,用戶(hù)創(chuàng )建一個(gè)游標類(lèi)型

create or replace package pkg_query as

type cur_query is ref cursor;

end pkg_query;

2、創(chuàng )建存儲過(guò)程

create OR REPLACE PROCEDURE prc_query

(p_tableName

in varchar2,

--表名

p_strwhere

in varchar2,

--查詢(xún)條件 --*

p_orderColumn

in varchar2,

--排序的列 --*

p_orderStyle

in varchar2,

--排序方式 --*

p_curPage

in out Number, --當前頁(yè)

p_pageSize

in out Number, --每頁(yè)顯示記錄條數

p_totalRecords

out Number,

--總記錄數 --*

p_totalPages

out Number,

--總頁(yè)數

v_cur

out pkg_query。

??cur_query)

--返回的結果集

IS

v_sql VARchar2(1000) := ’’;

--sql語(yǔ)句

v_startRecord Number

(4);

--開(kāi)始顯示的記錄條數

v_endRecord Number

(4);

--結束顯示的記錄條數

BEGIN

--記錄中總記錄條數

v_sql := ’select TO_NUMBER(count(*)) FROM ’ || p_tableName || ’ where 1=1’;

IF p_strwhere IS NOT NULL or p_strwhere ’’ THEN

v_sql := v_sql || p_strwhere;

END IF;

execute IMMEDIATE v_sql INTO p_totalRecords;

--驗證頁(yè)面記錄大小

IF p_pageSize ??

0
0
收藏0
回帖

如何在Oracle存儲過(guò)程中實(shí)現分頁(yè)? 期待您的回復!

取消
載入表情清單……
載入顏色清單……
插入網(wǎng)絡(luò )圖片

取消確定

圖片上傳中
編輯器信息
提示信息